web-dev-qa-db-fra.com

AndroidX sur Android Studio 3.2 - VerifyError lors de l'exécution de l'application

Migration de mon application vers les bibliothèques AndroidX sous Android Studio 3.2. Lors de l'exécution du débogage, tout fonctionne comme prévu, mais si je génère un fichier APK signé, masqué à l'aide de Proguard, le message d'erreur suivant s'affiche:

Java.lang.VerifyError: Verifier rejected class d.a: androidx.preference.Preference d.a.a(androidx.fragment.app.k, int)
failed to verify: androidx.preference.Preference d.a.a(androidx.fragment.app.k, int): [0x8] ‘this’ argument ‘Reference:
androidx.fragment.app.k’ not instance of ‘Reference: 
androidx.preference.B’ (declaration of ‘d.a’ appears in base.apk)

J'ai essayé d'exclure toutes les bibliothèques AndroidX:

-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }

Mais le problème continue sauf si j'annule essentiellement l'obfuscation à l'aide de

-keep class com.myapp.package.** { *; }

Nous avons également essayé de consulter le fichier de mappage pour connaître la classe d.a, mais cela ne m'a pas laissé entrevoir le sens du problème.

Jetifier est activé

Android.useAndroidX=true
Android.enableJetifier=true

Est-ce que j'ai râté quelque chose? Est-ce que c'est un problème avec la bibliothèque androix.preference?

8
Lior Iluz

Incohérence des classes Java entre les temps de compilation et d’exécution peut entraîner Java.lang.VerifyError, Essayez Fichier -> Invalidate Caches/Restart ... -> Invalidate and Restart  

0
shizhen