Json的Gson需要POJO类成员。所以我们需要保留所有的成员变量。(如果没有Proguard,则会混淆此属性(。以下proguard保留选项保留AppConfiguration 的所有属性
我们正在使用Proguard来模糊我们的Java应用程序。我们有一些POJO类,其中Gson用于在运行时从json 创建此对象
package com.example.app;
public class AppConfiguration {
private String name;
private String title;
private String details;
}
AppConfiguration configuration = new Gson().fromJson(value, AppConfiguration.class);
在使用proguard进行模糊处理后,配置返回null。我使用了保留选项来保留AppConfiguration,但没有帮助
Progarud选项
-keep class com.example.app.AppConfiguration
字段序列化名称
@SerializedName("keyType")
String keyType;
proguard配置
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
-keep,allowfuzzy@interfacecom.google.gson.annotations.**
如果你没有机会更改类别,你可以使用以下保留选项
-keepclassmembers class com.example.app.AppConfiguration {
public protected private *;
#Keep default members & functions
!public !protected !private *;
}