Android 改装不';t序列化响应类中的第二个对象
我的问题是,在使用release APK(proguard已启用)运行我的应用程序时,GSON不会序列化我的第二个对象。第一个对象已成功序列化。但是,应用程序在调试模式下运行,一切正常 我的应用程序使用2.6和Proguard。Gradle版本是Gradle:3.5.1 来自Web服务器的我的json数据Android 改装不';t序列化响应类中的第二个对象,android,gson,retrofit2,proguard,okhttp,Android,Gson,Retrofit2,Proguard,Okhttp,我的问题是,在使用release APK(proguard已启用)运行我的应用程序时,GSON不会序列化我的第二个对象。第一个对象已成功序列化。但是,应用程序在调试模式下运行,一切正常 我的应用程序使用2.6和Proguard。Gradle版本是Gradle:3.5.1 来自Web服务器的我的json数据 { "error": false, "contents": [ { "id": 1, "channel": { "id": 7,
{
"error": false,
"contents": [
{
"id": 1,
"channel": {
"id": 7,
"language_id": 1
},
"publisher": {
"id": 1,
"name": "Name of Publisher"
},
"title": "Some title",
"description": "This is description",
"subscribed": false
}
]
}
这是改装的响应级别
public class GetContentsResponse{
@SerializedName("error")
@Expose
private boolean mError;
@SerializedName("contents")
@Expose
private List<Content> mContents;
}
public class Content {
@SerializedName("id")
@Expose
private int mId;
@SerializedName("channel")
@Expose
private Channel mChannel;
@SerializedName("publisher")
@Expose
private Publisher mPublisher;
@SerializedName("title")
@Expose
private String mTitle;
@SerializedName("description")
@Expose
private String mDescription;
@SerializedName("subscribed")
@Expose
private boolean mSubscribed;
public int getId() {
return mId;
}
public Channel getChannel() {
return mChannel;
}
public String getTitle() {
return mTitle;
}
public String getDescription() {
return mDescription;
}
public boolean isSubscribed() {
return mSubscribed;
}
public Publisher getPublisher() {
return mPublisher;
}
}
调试模式(禁用proguard)时正在分析发布服务器对象。发行者对象在发行版APK运行时为空(已启用proguard)
我真的很研究这个问题。但我不明白问题是什么?有人能帮忙吗
编辑:我现在把所有的模型类都保存在Proguard规则中,但这里有一个神秘的错误。我找不到它。为什么频道对象已序列化,但发布者对象未序列化?将此添加到proguard中
-保留公共类com.package.name.models.*{*;}
注意:-com.package.name.models-这是POJO类所在的包名
就这样。如果没有其他答案,我会将其标记为正确答案。我只是想知道。通道对象已序列化,但发布者对象未序列化。
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
-keepattributes *Annotation*