java.lang.ClassNotFoundException: Didn't find class "androidx.startup.InitializationProvider"
java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider:
java.lang.RuntimeException: Unable to get provider androidx.core.content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.FileProvider" on path
java.lang.RuntimeException: Unable to get provider androidx.core.content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.FileProvider" on path:
at android.app.ActivityThread.installProvider(ActivityThread.java:4836)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4428)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4368)
at android.app.ActivityThread.access$1600(ActivityThread.java:137)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5060)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:861)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:677)
at dalvik.system.NativeStart.main(Native Method)
这个问题是因为
minSdkVersion 22改成minSdkVersion 19
低版本设备不兼容。需要修改2个地方才能解决这个问题。
1.build.gradle 修改multiDexEnabled=true
defaultConfig { ... multiDexEnabled true
2.dependencies添加2个支持包
implementation 'androidx.startup:startup-runtime:1.1.1' implementation 'com.android.support:multidex:1.0.3'
3.AndroidManifest添加provider
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider>
4.自定义的Application中添加
@Override protected void attachBaseContext(Context base){ super.attachBaseContext(base); MultiDex.install(this); }
5.proguard-rules 添加keep
-keep class androidx.startup.** { *; }