无法获取提供者androidx.lifecycle.ProcessLifecycleOwnerInitializr [英] Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializr
问题描述
在具有Android 4.4的设备上运行具有相关性'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'
和'androidx.lifecycle:lifecycle-viewmodel:2.1.0-alpha03'
的应用程序时出错.
Getting error while running app which have dependencies 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'
and 'androidx.lifecycle:lifecycle-viewmodel:2.1.0-alpha03'
on device with Android 4.4.
在装有Android 6的设备上工作正常
Works fine in device with Android 6
应用因错误而崩溃
java.lang.RuntimeException: Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializer: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ProcessLifecycleOwnerInitializer" on path: DexPathList[[zip file "/data/app/**********.apk"],nativeLibraryDirectories=[/data/app-lib/***********, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:5052)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4623)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4563)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
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:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ProcessLifecycleOwnerInitializer" on path: DexPathList[[zip file "/data/app/**********.apk"],nativeLibraryDirectories=[/data/app-lib/********, /vendor/lib, /system/lib]]
推荐答案
这是一个敏捷问题.在Android 4.4中
It was a Dex problem. in android 4.4
1-在应用程序gradle中,在defaultConfig内启用multidex
1 - in app gradle, inside defaultConfig enable multidex
defaultConfig{
....
multiDexEnabled true
}
2-要在其他版本中支持multidex,请将此依赖项添加到您的应用gradle中
2 - to support multidex in other versions, add this dependency to your app gradle
implementation 'com.android.support:multidex:1.0.3'
3-如果您有一个扩展Application的类,请使其扩展
3 - if you have a class that extends Application, make it extend
MultiDexApplication
MultiDexApplication
如果不这样做,请将其添加到应用程序标记内的清单文件中
if you don't, add this to your manifest file inside application tag
android:name="android.support.multidex.MultiDexApplication"
此外,如果您创建了一个新应用程序,请不要忘记将以下内容添加到您的app/build.gradle
Besides, if you created a new application, dont forget to add the following to your app/build.gradle
android {
defaultConfig {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
就是这样.为我工作
这篇关于无法获取提供者androidx.lifecycle.ProcessLifecycleOwnerInitializr的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!