我在我的应用程序中将一些对象的json
表示形式保存为缓存。在每次更新应用程序并将json
对象正确转换为Java对象后,我没有任何问题。在更新为Android Gradle插件3.5(添加此行)后出现了问题:
classpath 'com.android.tools.build:gradle:3.5.0'
当我创建发布版apk时,似乎无法将
json
字符串转换为Java对象,而且混淆后的名称已更改。当我将gradle插件恢复到3.4.2版本时,一切正常。那么问题在哪里,我该如何解决?我在我的应用程序中将一些对象的json
表示形式保存为缓存。在每次更新应用程序并将json
对象正确转换为Java对象后,我没有任何问题。在更新为Android Gradle插件3.5(添加此行)后出现了问题:
classpath 'com.android.tools.build:gradle:3.5.0'
json
字符串转换为Java对象,而且混淆后的名称已更改。当我将gradle插件恢复到3.4.2版本时,一切正常。那么问题在哪里,我该如何解决?我也遇到了同样的错误。
然后我发现这是启用R8(一种用于减小应用程序大小的工具)时出现的错误。
它是预定义的,因此通过设置值为false,可以解决这个错误。
在gradle.properties文件中将r8的值设置为false。
android.enableR8=false
我应该在混淆时排除缓存对象,但是暂时我禁用了 R8
并启用了 proguard,在 gradle.properties
文件中增加了以下行:
android.enableR8=false
将以下行添加到应用程序的 build.gradle
文件中:
useProguard true
minifyEnabled true