web-dev-qa-db-ja.com

プロバイダーandroidx.lifecycle.ProcessLifecycleOwnerInitializrを取得できません

依存関係があるアプリの実行中にエラーが発生する'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'および'androidx.lifecycle:lifecycle-viewmodel:2.1.0-alpha03' Android 4.4。

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]]
5
Ajay Simiyon

私の場合、どういうわけかAndroidアーキテクチャライフサイクルファイルがAndroid Bundle on Pie(Android9)で省略されます)なので、私が追加したのはproguard-rules.pro

AndroidXの場合:

-keep class androidx.lifecycle.** {*;}

サポートのための :

-keep class Android.Arch.lifecycle.** {*;}
1
VishnuPrajapati

Multidexの公式ドキュメント here をご覧ください。このリンクを使用して、最新の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'
}
1
shakram02