Google GSON 2.4可缩小可实现的真实问题



我在当前使用Google GSON 1.7.1 lib的应用程序上工作。一切都很好,但是我想将其更新为最新版本。尝试将其更新为2.4,并且在应用程序的调试变体上运行良好。

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

我注意到的是,如果我将minifyEnabled设置为发行版本的false,我将重新获取数据(解析机制起作用)。

有人知道有关minifyEnabled true和最新的GSON LIB的问题吗?

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

-keepclassmembers class com.myapp.data.beans.json.** {
    private <fields>;
}
-keep class sun.misc.Unsafe { *; }
-keep class com.myapp.ui.views.** { *; }
-keepattributes Signature
-keepattributes *Annotation*

我也尝试添加

-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

根据Google GSON示例配置文件,但没有任何区别。

您需要告诉proguard保留类(字段和方法),这将在gson上进行序列化/验证。

例如,如果您在软件包com.google.gson.examples.android.model中都有所有模型,则需要将以下规则添加到Proguard

-keep class com.google.gson.examples.android.model.** { *; }

请查看这个Gson Proguard官方示例,并尝试在项目中使用这些规则。

最新更新