web-dev-qa-db-fra.com

Impossible d'obtenir un fournisseur androidx.lifecycle.Processlifecycleownerinitializr

Obtenir une erreur lors de l'exécution de l'application qui ont des dépendances 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03' et 'androidx.lifecycle:lifecycle-viewmodel:2.1.0-alpha03' sur le périphérique avec Android 4.4.

Fonctionne bien dans le périphérique avec Android 6

App s'est écrasé avec une erreur

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

Dans mon cas, d'une manière ou d'une autre Android Fichiers de cycle de vie d'architecture d'architecture est omis avec Android Bundle sur la tarte (Android9). Alors qu'est-ce que j'ai a ajouté conserver la déclaration pour la même chose dans proguard-rules.pro

Pour Androidx:

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

Pour le soutien:

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

Vous pouvez trouver les documents officiels sur MultiDX ici . Utilisez ce lien pour vérifier la dernière version de dépendance multidex supérieures.

si vous utilisez Androidx

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

sinon utiliser

dependencies {
  implementation 'com.Android.support:multidex:1.0.3'
}
1
shakram02