【发布时间】:2019-02-01 09:36:12
【问题描述】:
将我的应用迁移到 Android Studio 3.2 上的 AndroidX 库。 在调试中运行时,一切都按预期工作,但如果我生成一个签名的 APK,使用 Proguard 进行混淆 - 我收到此错误:
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)
我已尝试排除所有 AndroidX 库:
-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }
但问题仍然存在,除非我基本上取消使用
-keep class com.myapp.package.** { *; }
还尝试查看映射文件以了解 d.a 是什么类,但它没有提示我问题的方向。
Jetifier 已启用
android.useAndroidX=true
android.enableJetifier=true
我在这里遗漏了什么吗?这可能是 android.preference 库的问题吗?
- 在Google issue tracker 上打开了一个错误。
【问题讨论】:
-
你用的是proguard还是dexguard?
-
@shizhen proguard
标签: android android-studio android-proguard androidx android-r8