Java Gson fromJson在Proguard之后返回null

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

我们正在使用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。我使用了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解析器不知道要匹配哪些值。