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?
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