java.lang.VerifyError: Verifier отклонил класс: конструктор, возвращающийся без вызова конструктора суперкласса - PullRequest
0 голосов
/ 19 декабря 2018

Когда я собираю версию релиза с помощью proguard, я получаю ошибку времени выполнения при запуске приложения (восстановленную):

2018-12-18 23:10:37.787 16077-16077/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.cantalk.ruen.dialogs, PID: 16077
    java.lang.VerifyError: Verifier rejected class age: void com.google.android.gms.common.wrappers.Wrappers.<init>() failed to verify: void com.google.android.gms.common.wrappers.Wrappers.<init>(): [0x1] Constructor returning without calling superclass constructor (declaration of 'com.google.android.gms.common.wrappers.Wrappers' appears in base.apk)
        at com.google.android.gms.common.wrappers.Wrappers.packageManager(Unknown Source:0)
        at com.google.android.gms.internal.ads.zzze.zzh(Unknown Source:0)
        at com.google.android.gms.internal.ads.zzze.attachInfo(Unknown Source:0)
        at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(Unknown Source:2)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6391)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:5938)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5853)
        at android.app.ActivityThread.access$1100(ActivityThread.java:199)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Я думаю, что это вызвано инициализацией admob, но я не знаю, почему это работало раньше.Эта ошибка появляется после обновления зависимостей:

enter image description here enter image description here

1 Ответ

0 голосов
/ 10 августа 2019

В моем случае я использовал assumenosideeffects в моих правилах Proguard.Например:

-assumenosideeffects class java.io.PrintStream { *; }  

, что привело к ошибке в proguard при удалении вызова конструктора суперкласса из конструктора каждого класса.Чтобы это исправить, вы должны изменить это на:

-assumenosideeffects class java.io.PrintStream { 
      *** <fields>;
      *** <methods>;
}  

PrintStream - это класс, который вы хотите скрыть с помощью proguard.Это исправило проблему в моем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...