Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法获取提供程序androidx.lifecycle.ProcessLifecycleOwnerInitializer_Android_Viewmodel_Androidx_Android Mvvm - Fatal编程技术网

无法获取提供程序androidx.lifecycle.ProcessLifecycleOwnerInitializer

无法获取提供程序androidx.lifecycle.ProcessLifecycleOwnerInitializer,android,viewmodel,androidx,android-mvvm,Android,Viewmodel,Androidx,Android Mvvm,在Android 4.4设备上运行依赖项为androidx的应用程序时出错。生命周期:生命周期扩展:2.1.0-alpha03'和androidx。生命周期:生命周期视图模型:2.1.0-alpha03' 在安卓6设备上运行良好 应用程序因错误而崩溃 java.lang.RuntimeException: Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializer: java.lang.ClassNotFo

在Android 4.4设备上运行依赖项为androidx的应用程序时出错。生命周期:生命周期扩展:2.1.0-alpha03'和androidx。生命周期:生命周期视图模型:2.1.0-alpha03'

在安卓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]]
谢谢

这是一个Dex问题。在安卓4.4中

1-在应用程序gradle中,在defaultConfig内部启用多索引

defaultConfig{
  ....
  multiDexEnabled true
}
2-要在其他版本中支持multidex,请将此依赖项添加到应用程序gradle中

implementation 'com.android.support:multidex:1.0.3' 
3-如果您有一个扩展应用程序的类,请使其扩展

多索引应用

如果没有,请将其添加到应用程序标记内的清单文件中

android:name="android.support.multidex.MultiDexApplication" 
此外,如果您创建了一个新的应用程序,请不要忘记将以下内容添加到您的app/build.gradle

android {
    defaultConfig {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

就这样。为我工作

你可以找到关于Multidex的官方文档。使用此链接检查最新的multidex gradle依赖项版本

如果您使用的是AndroidX

dependencies {
    def multidex_version = "2.0.1" // Check this from the link
    implementation 'androidx.multidex:multidex:$multidex_version'
}
否则使用

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

在我的例子中,android架构生命周期文件在Pie上的android捆绑包(Android9)中被忽略了。所以我在proguard-rules.pro中添加了相同的keep语句

对于AndroidX:

-keep class androidx.lifecycle.** {*;}
支持:

-keep class android.arch.lifecycle.** {*;}

对于kotlin,将此添加到您的gradle中:

kotlinOptions {
        jvmTarget = '1.8'
}
compileOptions {
        targetCompatibility = "8"
        sourceCompatibility = "8"
}

对我来说,以上这些都不起作用。同样,重新启动和失效也没有做任何事情。
卸载应用程序和“构建>清理项目”后一切都按预期进行。

在我的例子中,我在linux上进行android studio性能测试后回到windows,在windows和linux之间运行了一次android studio性能测试,我发现了这个错误,所以我简单地清理了项目并重建了它,它工作得很好。由于这些更改,应用程序的打开速度减慢了。我想知道为什么。