Android 在调试模式下获取应用程序服务器数据,但不';不能在释放模式下工作
我正在从服务器获取数据。它在调试apk中工作正常,但我正在尝试生成签名apk,数据并没有从服务器获取数据Android 在调试模式下获取应用程序服务器数据,但不';不能在释放模式下工作,android,Android,我正在从服务器获取数据。它在调试apk中工作正常,但我正在尝试生成签名apk,数据并没有从服务器获取数据 有没有办法获得解决方案?您需要为所有网络模型添加@Keep注释(如果您或您的LIB使用反射)。因为proguard混淆了签名apk中的所有类,而Gson无法将JSON解析到您的模型中 编辑: 例如,您有用于从json解析的类(NetworkResponse.javaclass): Proguard可能是导致该问题的原因。请检查是否已在应用程序的gradle文件中启用 这些行支持proguar
有没有办法获得解决方案?您需要为所有网络模型添加
@Keep
注释(如果您或您的LIB使用反射)。因为proguard混淆了签名apk中的所有类,而Gson无法将JSON解析到您的模型中
编辑:
例如,您有用于从json解析的类(NetworkResponse.java
class):
Proguard可能是导致该问题的原因。请检查是否已在应用程序的gradle文件中启用 这些行支持proguard进行发布构建:
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
如果是,则需要保留一些字段
请参见:在我需要添加@keep annotation的地方,我正在使用retrifit 2 lib从服务器获取数据。是否使用gson?是的,我正在使用GSONY您需要在每个模型的类声明中添加此注释。示例
Response.java
:@Keep public class Response{…
如果使用getter和setter??我需要添加minifyEnabled true?实际上我使用的是minifyEnabled false。如果minifyEnabled设置为false,则不是“proguard”导致该问题。您可以共享您的代码吗?
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}