在minifyenable中,Retrofit 2在发布APK中返回null但在调试APK

时间:2017-03-14 09:36:32

标签: android api retrofit2

获得空响应,但是当启用minify时,使用Release APK获得代码200,当minify为false时,则为ok。

enter image description here

但是,当启用minify时,使用调试APK获得预期的响应。

5 个答案:

答案 0 :(得分:20)

问题解决了:))

proguard-rules没有问题,无需添加任何额外内容。

如果minifyEnabled即使变量名与键相同,也需要添加SerializedName注释。

这是我手动创建的唯一模型:P

在Debug中可以正常工作但在签名后没有。:)

答案 1 :(得分:2)

我遇到了同样的问题,我的解决方案是修改“保护规则”,以使您的班级免受混淆。

-keep public class com.your.packages.model.** {*;}

答案 2 :(得分:1)

您需要设置proguard-rule以便发布。如果要测试真实服务器,可以创建新的构建类型,该类型以服务器API为目标

干杯:)

答案 3 :(得分:1)

-keep public class com.your.packages.model.* {*;}

为我工作

答案 4 :(得分:0)

-keepclassmembers,allowobfuscation class * {
  @com.google.gson.annotations.SerializedName <fields>;
}
        
Copy At proguard-rules.pro ^^^^^^

/////////////////////////////////
package com.*;//

import com.google.gson.annotations.SerializedName;// <<
        
public class Retrofit { 
  @SerializedName("name") //<<<<
  private String apiname;
}