Моя проблема в том, что при запуске моего приложения с выпуском APK (proguard включен) GSON не сериализует мой второй объект. Первый объект успешно сериализован. Но приложение работает в режиме отладки, все в порядке.
Мое приложение использует Retrofit2.6 и Proguard. Gradle версия - gradle: 3.5.1
Мои данные json от WebServer
{
"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
}
]
}
А это класс Response для Retrofit
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;
}
}
Это мои правила защиты
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
-keepattributes *Annotation*
Объект Publisher анализируется в режиме отладки (proguard отключен). Объект Publisher имеет значение null при запуске Release APK (proguard включен).
Я действительно очень много исследую эту проблему. Но я не понимаю, в чем проблема? Есть кто-нибудь, кто может помочь?
Редактировать: Я все свои классы моделей пока держу в правилах Proguard, но здесь есть загадочная ошибка. Я не могу найти это. Почему объект Channel сериализован, а объект Publisher не сериализован?