我正在使用目前使用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示例config文件,但它没有任何区别。
答案 0 :(得分:2)
你需要告诉proguard保留类(字段和方法)以及将通过GSON序列化/反序列化。
例如,如果您在包com.google.gson.examples.android.model
中包含所有模型,则需要将以下规则添加到proguard
-keep class com.google.gson.examples.android.model.** { *; }
查看this Gson proguard official example,然后尝试在项目中使用这些规则。