【问题标题】:VerifyError: Rejecting class android.support.g.b because it failed compile-time verificationVerifyError:拒绝类 android.support.g.b,因为它未能通过编译时验证
【发布时间】:2018-06-28 18:12:00
【问题描述】:

这类似于Rejecting class because it failed compile-time verification Androidjava.lang.VerifyError: Verifier rejected class on Lollipop when using release APK,但我的问题的根源仍然未知,所有建议的解决方案都无济于事。

手动安装支持 MultiDex 并启用 ProGuard 的签名发布 apk 会在启动时引发此异常:

475-475/? E/AndroidRuntime: FATAL EXCEPTION: main
                            Process: ..., PID: 475
                            java.lang.VerifyError: Verifier rejected class android.support.g.b due to bad method void android.support.g.b.<init>() (declaration of 'android.support.g.b' appears in /data/app/...-2/base.apk)
                                at ...MyApp.attachBaseContext(Unknown Source)
                                at android.app.Application.attach(Application.java:181)

-dontoptimize 不会发生这种情况。当前最小优化设置:

-optimizations "code/*"

如果没有-optimizations 或限制较少的选项,我也会遇到同样的错误。添加-keep class android.* 也无济于事。 "code/removal/*,code/simplification/*" 没有错误,但这忽略了 -assumenosideeffects

android.support.g.b是混淆的android.support.multidex.MultiDex类本身,在调用覆盖的attachBaseContext(Context)时会报错:

@Override
protected void attachBaseContext(Context base) {

    super.attachBaseContext(base);
    MultiDex.install(this);
}

使用字节码查看器解码此方法(默认构造函数)会导致:

private b() { // <init> //()V
    return
}
  • 按类规范禁用优化会很有用。
  • 替代方案:了解考虑-assumenosideeffects 的最小-optimizations 选项

【问题讨论】:

  • 解决了吗?使用 Android X 库时遇到类似错误
  • 有什么解决办法吗?我有同样的问题。

标签: android proguard


【解决方案1】:

不要将成员通配符与-assumenosideeffects 一起使用,因为这会“溢出”到其他类的 Object 中。见https://sourceforge.net/p/proguard/bugs/716/#98d4

接口的任何规则都可能出现类似的问题。示例:

-assumenosideeffects class * implements Interface {
    public <init>();
    public Object interfacemethod(); # May concern methods with same signature in other Objects
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    相关资源
    最近更新 更多