pan*_*dre 1 crash android verifyerror firebase android-proguard
在我们的项目中,我们一直在成功使用:
一切正常,直到上周我们升级到gradle plugin 3.2.0。
在此版本中,如果我们具有以下proguard配置以删除对Log的调用:
-assumenosideeffects class android.util.Log { *; }
Run Code Online (Sandbox Code Playgroud)
在运行应用程序时,我们得到:
java.lang.VerifyError:验证程序拒绝类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)无法验证:无效com.google.firebase.FirebaseApp。(android.content.Context,java.lang.String,com.google.firebase.b):[0x3C]寄存器v8的类型为未初始化参考:com.google .firebase.internal.a分配PC:58,但预期参考:com.google.firebase.FirebaseApp $ a 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]寄存器v1具有未初始化的引用类型:com。 google.firebase.FirebaseApp $ 1分配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)的先前版本中那样。
有谁知道这可能是什么原因?
小智 7
似乎proguard -assumenosideeffects和Log。
尝试-assumenosideffects仅对您使用的方法以及依赖于这些Log方法的任何方法使用。
就像是:
-assumenosideeffects class android.util.Log {
public static *** v(...);
public static *** d(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
}
Run Code Online (Sandbox Code Playgroud)
而不是通常的
-assumenosideeffects class android.util.Log {*;}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |