【发布时间】:2019-03-06 12:54:56
【问题描述】:
在我们的项目中我们一直使用成功:
- Firebase(用于 FCM)
- Crashlytics(用于报告崩溃)
- Proguard(优化版)
直到上周我们升级到gradle plugin 3.2.0时一切都很好。
在这个版本中,如果我们有以下 proguard 配置来删除对 Log 的调用:
-assumenosideeffects class android.util.Log { *; }
运行应用时,我们得到:
java.lang.VerifyError: Verifier denied class com.google.firebase.FirebaseApp: void com.google.firebase.FirebaseApp.() 验证失败: void com.google.firebase.FirebaseApp.(): [0x37]寄存器 v0 具有未初始化类型参考:java.lang.Object 分配 PC:53 但预期参考:java.lang.Object void com.google.firebase.FirebaseApp.(android.content.Context, java.lang.String, com.google.firebase.b) 验证失败:void com.google.firebase.FirebaseApp.(android.content.Context, java.lang.String, com.google.firebase.b): [0x3C] register v8 has type Uninitialized Reference: com.google.firebase.internal.a Allocation PC: 58 but expected Reference: com.google.firebase.FirebaseApp$一种 com.google.firebase.FirebaseApp com.google.firebase.FirebaseApp.a(android.content.Context, com.google.firebase.b, java.lang.String) 验证失败:com.google.firebase.FirebaseApp com. google.firebase.FirebaseApp.a(android.content.Context, com.google.firebase.b, java.lang.String): [0x17] register v1 has type Uninitialized Reference: com.google.firebase.FirebaseApp$1 Allocation PC: 21 但预期参考:com.google.android.gms.common.api.internal.a$a('com.google.firebase.FirebaseApp' 的声明出现在 /data/app/com.example.app-2/base .apk)`
如果我们删除该配置以剥离对 Log 的调用,一切都很好,就像之前版本的 gradle 插件 (3.1.4) 一样。
有人知道是什么原因造成的吗?
【问题讨论】:
-
这里有同样的问题,而且每次都发生在不同的地方。这个等级的插件版本根本不稳定......如果我使用proguard优化规则会出现问题,但如果使用简单规则则不会。暂时恢复到 3.1.4 版
-
@don11995 检查 Aybareon 提供的解决方案,它对我有用
标签: android firebase crash android-proguard verifyerror