Google Gson 2.4 minifyEnable 真实问题

Mer*_*dru 4 android gson

我正在开发一个当前使用 google gson 1.7.1 lib 的应用程序。一切正常,但我想将其更新到最新版本。尝试将其更新到 2.4,并且在应用程序的调试版本上运行良好。

我最近尝试在发布版本上运行该应用程序,突然 JSON 解析机制不起作用。将 gson lib 恢复到 1.7.1 可以解决该问题,但我仍然希望将其更新到最新版本。

我注意到的是,如果我设置minifyEnabledfalse发布版本,我会再次开始获取数据(解析机制有效)。

minifyEnabled true有谁知道有关最新 gson lib 的问题吗?

在我的 proguard-rules 文件中,我有以下与 gson 库相关的项目:

-keepclassmembers class com.myapp.data.beans.json.** {
    private <fields>;
}
-keep class sun.misc.Unsafe { *; }
-keep class com.myapp.ui.views.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
Run Code Online (Sandbox Code Playgroud)

我也尝试添加

-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
Run Code Online (Sandbox Code Playgroud)

按照 Google Gson 示例配置文件,但它没有任何区别。

Joa*_*usa 7

您需要告诉 proguard 保留类(字段和方法),并且这些类将通过 GSON 进行序列化/反序列化。

例如,如果您的包中包含所有模型com.google.gson.examples.android.model,则需要添加以下规则来 proguard

-keep class com.google.gson.examples.android.model.** { *; }
Run Code Online (Sandbox Code Playgroud)

看一下这个 Gson proguard 官方示例,并尝试在您的项目中使用这些规则。