Я пытаюсь получить данные с сервера с помощью Android, я работаю хорошо, когда установлено minifyEnabled false, но когда я устанавливаю minifyEnabled true, я не могу изменить данные, все это равно нулю
Моя версия Java — 17, моя ретро-версия —
com.squareup.retrofit2:retrofit:2.6.0
com.squareup.retrofit2:converter-gson:2.5.0
com.squareup.okhttp3:logging-interceptor:3.12.0
Я пробую другой ответ на stackoverflow
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
-dontwarn retrofit2.**
-dontwarn org.codehaus.mojo.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepattributes *Annotation*
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keepattributes RuntimeInvisibleParameterAnnotations
-keepattributes EnclosingMethod
-keepclasseswithmembers class * {
@retrofit2.* <methods>;
}
-keepclasseswithmembers interface * {
@retrofit2.* <methods>;
}
Мой код для вызова API
interface ApiService {
@POST("/ipay-decode/")
suspend fun handleDataTest(
@Body requestBody: BaseRequest,
): BaseResponse
}
data class BaseRequest(
@SerializedName("encrypted")
val encrypted: String
)
open class BaseResponse {
@SerializedName("message")
var message: String = ""
}
Может ли кто-нибудь помочь мне с каким-либо решением?
Это связано с тем, что ваши модели запутываются при включении минимизации. Чтобы исправить это, добавьте путь к пакету ваших моделей в правила Proguard.
Что-то вроде этого должно работать:
-keep class your.package.name.model.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
-keep class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
private void readObjectNoData();
Object writeReplace();
Object readResolve();
}