首页 > 解决方案 > 启用 proguard 时发布 apk 中的 NoSuchMethodError

问题描述

此错误仅出现在已签名/已发布的apk 中,并且 proguard 为 enable( minifyEnabled true)。

错误 logcat 将我重定向到这一行: if (jsonArrayUserDetails.length() > 0) { }

错误:

E: FATAL EXCEPTION: main
    Process: com.my.project, PID: 4713
    java.lang.NoSuchMethodError: No virtual method a()I in class Lorg/json/JSONArray; or its super classes (declaration of 'org.json.JSONArray' appears in /system/framework/core-libart.jar)
        at com.my.project.userActivities.LoginActivity.a(LoginActivity.java:145)
        at com.my.project.userActivities.LoginActivity.a(LoginActivity.java:40)
        at com.my.project.userActivities.LoginActivity$1.a(LoginActivity.java:115)
        at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
        at android.os.Handler.handleCallback(Handler.java:794)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6651)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

build.gradle(项目级):

classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.google.gms:google-services:4.2.0'

标签: androidandroid-gradle-pluginproguardnosuchmethoderrorsigned-apk

解决方案


经过几个小时的搜索,我意外地找到了解决方案。我尝试更新build.gradle(project-level),它就像一个魅力。

老的:

classpath 'com.android.tools.build:gradle:3.4.0'

新的:

classpath 'com.android.tools.build:gradle:3.5.0'

推荐阅读