-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Description
Summary:
After recently updating to API 28 in #2595, the app started crashing for Android Pie devices. It works fine for lower Android versions.
Android Pie's changelog mentions the removal of Apache HTTP client from the system's boot classpath.
This is the suggested fix:
https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p
Steps to reproduce:
App crashes while starting.
System logs:
2019-03-15 08:42:37.806 14649-14649/? I/rw.commons.bet: Not late-enabling -Xcheck:jni (already on)
2019-03-15 08:42:37.828 14649-14649/? W/rw.commons.bet: Unexpected CPU variant for X86 using defaults: x86
2019-03-15 08:42:38.236 14649-14649/? I/ACRA: ACRA is enabled for fr.free.nrw.commons.beta, initializing...
2019-03-15 08:42:38.416 14649-14649/fr.free.nrw.commons.beta D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2019-03-15 08:42:38.467 14649-14649/fr.free.nrw.commons.beta D/AndroidRuntime: Shutting down VM
2019-03-15 08:42:38.471 14649-14649/fr.free.nrw.commons.beta E/AndroidRuntime: FATAL EXCEPTION: main
Process: fr.free.nrw.commons.beta, PID: 14649
java.lang.RuntimeException: Unable to create application fr.free.nrw.commons.CommonsApplication: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]] (Caused by java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]])
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]] (Caused by java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]])
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1276)
at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:1065)
at java.security.AccessController.doPrivileged(AccessController.java:43)
at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:1062)
at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:650)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>(ThreadSafeClientConnManager.java:157)
at fr.free.nrw.commons.mwapi.ApacheHttpClientMediaWikiApi.<init>(ApacheHttpClientMediaWikiApi.java:86)
at fr.free.nrw.commons.di.NetworkingModule.provideMediaWikiApi(NetworkingModule.java:72)
at fr.free.nrw.commons.di.NetworkingModule_ProvideMediaWikiApiFactory.get(NetworkingModule_ProvideMediaWikiApiFactory.java:39)
at fr.free.nrw.commons.di.NetworkingModule_ProvideMediaWikiApiFactory.get(NetworkingModule_ProvideMediaWikiApiFactory.java:12)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at fr.free.nrw.commons.di.CommonsApplicationModule_ProvidesSessionManagerFactory.get(CommonsApplicationModule_ProvidesSessionManagerFactory.java:37)
at fr.free.nrw.commons.di.CommonsApplicationModule_ProvidesSessionManagerFactory.get(CommonsApplicationModule_ProvidesSessionManagerFactory.java:12)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at fr.free.nrw.commons.di.DaggerCommonsApplicationComponent.injectCommonsApplication(DaggerCommonsApplicationComponent.java:1251)
2019-03-15 08:42:38.473 14649-14649/fr.free.nrw.commons.beta E/AndroidRuntime: at fr.free.nrw.commons.di.DaggerCommonsApplicationComponent.inject(DaggerCommonsApplicationComponent.java:1196)
at fr.free.nrw.commons.CommonsApplication.onCreate(CommonsApplication.java:96)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
... 8 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1131)
... 27 more
2019-03-15 08:42:38.478 14649-14649/fr.free.nrw.commons.beta E/ACRA: ACRA caught a RuntimeException for fr.free.nrw.commons.beta
java.lang.RuntimeException: Unable to create application fr.free.nrw.commons.CommonsApplication: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]] (Caused by java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]])
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]] (Caused by java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]])
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1276)
at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:1065)
at java.security.AccessController.doPrivileged(AccessController.java:43)
at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:1062)
at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:650)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>(ThreadSafeClientConnManager.java:157)
at fr.free.nrw.commons.mwapi.ApacheHttpClientMediaWikiApi.<init>(ApacheHttpClientMediaWikiApi.java:86)
at fr.free.nrw.commons.di.NetworkingModule.provideMediaWikiApi(NetworkingModule.java:72)
at fr.free.nrw.commons.di.NetworkingModule_ProvideMediaWikiApiFactory.get(NetworkingModule_ProvideMediaWikiApiFactory.java:39)
at fr.free.nrw.commons.di.NetworkingModule_ProvideMediaWikiApiFactory.get(NetworkingModule_ProvideMediaWikiApiFactory.java:12)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at fr.free.nrw.commons.di.CommonsApplicationModule_ProvidesSessionManagerFactory.get(CommonsApplicationModule_ProvidesSessionManagerFactory.java:37)
at fr.free.nrw.commons.di.CommonsApplicationModule_ProvidesSessionManagerFactory.get(CommonsApplicationModule_ProvidesSessionManagerFactory.java:12)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at fr.free.nrw.commons.di.DaggerCommonsApplicationComponent.injectCommonsApplication(DaggerCommonsApplicationComponent.java:1251)
2019-03-15 08:42:38.480 14649-14649/fr.free.nrw.commons.beta E/ACRA: at fr.free.nrw.commons.di.DaggerCommonsApplicationComponent.inject(DaggerCommonsApplicationComponent.java:1196)
at fr.free.nrw.commons.CommonsApplication.onCreate(CommonsApplication.java:96)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
... 8 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.impl.LogFactoryImpl" on path: DexPathList[[zip file "/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk"],nativeLibraryDirectories=[/data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/lib/x86, /data/app/fr.free.nrw.commons.beta-ntPdyCngt22axPvg-9vrCA==/base.apk!/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1131)
... 27 more
2019-03-15 08:42:38.778 14649-14649/fr.free.nrw.commons.beta I/Process: Sending signal. PID: 14649 SIG: 9
Device and Android version:
Emulator. API 28
Commons app version:
latest master
Would you like to work on the issue?
Yes
Metadata
Metadata
Assignees
Labels
No labels