android - 启用 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'
解决方案
经过几个小时的搜索,我意外地找到了解决方案。我尝试更新build.gradle(project-level),它就像一个魅力。
老的:
classpath 'com.android.tools.build:gradle:3.4.0'
新的:
classpath 'com.android.tools.build:gradle:3.5.0'
推荐阅读
- javascript - 三个 js 3d 模型加载器
- udp - 来自发送方的 iperf3 udp 静默间隙
- numpy - 文件路径的 TensorFlow 张量映射到 numpy 数据
- javascript - JavaScript 中对 v-treeview Vuetify 的“application/xml”响应
- flutter - 滚动到列表中的特定位置
- excel - 在 Excel 中更改工作表名称时如何使宏工作
- text-classification - 序列分类器也是 seq2seq 模型吗?
- sql - WHERE-IN 语句:对数据库执行 SQL 查询时出错:行值被滥用
- laravel - 调用未定义的方法 ComposerAutoloaderInitd7a72f88a86cf25d5563498a7179620e::getLoader()
- python - 为什么不同的格式方法在 Python 中表现不同?