Java Gson fromJson在Proguard之后返回null
我们正在使用Proguard混淆Java应用程序。我们有一些POJO类,其中Gson用于在运行时从json创建这些对象Java Gson fromJson在Proguard之后返回null,java,gson,proguard,obfuscation,Java,Gson,Proguard,Obfuscation,我们正在使用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(val
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。我使用了keep选项来保留AppConfiguration,但没有帮助
Progarud期权
-keep class com.example.app.AppConfiguration
Gson fromJson需要POJO类成员。因此,我们需要保留所有成员变量(如果没有Proguard,则会混淆这些属性)。以下proguard keep选项保留AppConfiguration的所有属性
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
字段序列化名称
@SerializedName("keyType")
String keyType;
前进档配置
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
如果
AppConfiguration
将其字段注释为@SerializedName
,是否需要配置ProGuard规则。。我没有试过。POJO类由另一个团队提供。这是一个很好的提示。是的,progaurd正在混淆这些名称,因此Gson解析器不知道要匹配哪些值。