Android 在调试模式下获取应用程序服务器数据,但不';不能在释放模式下工作

Android 在调试模式下获取应用程序服务器数据,但不';不能在释放模式下工作,android,Android,我正在从服务器获取数据。它在调试apk中工作正常,但我正在尝试生成签名apk,数据并没有从服务器获取数据 有没有办法获得解决方案?您需要为所有网络模型添加@Keep注释(如果您或您的LIB使用反射)。因为proguard混淆了签名apk中的所有类,而Gson无法将JSON解析到您的模型中 编辑: 例如,您有用于从json解析的类(NetworkResponse.javaclass): Proguard可能是导致该问题的原因。请检查是否已在应用程序的gradle文件中启用 这些行支持proguar

我正在从服务器获取数据。它在调试apk中工作正常,但我正在尝试生成签名apk,数据并没有从服务器获取数据


有没有办法获得解决方案?

您需要为所有网络模型添加
@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'
    }