Android Retrofit 1.9.0 Release Build IllegalArgument Exception问题

时间:2017-05-22 07:22:05

标签: android retrofit

我在发布版本

的android改造版中遇到了崩溃
Last parameter must be of type Callback<X> or Callback<? super X>.
at retrofit.RestMethodInfo.methodError(Unknown Source)
at retrofit.RestMethodInfo.parseResponseType(Unknown Source)
at retrofit.RestMethodInfo.<init>(Unknown Source)
at retrofit.RestAdapter.getMethodInfo(Unknown Source)
at retrofit.RestAdapter$RestHandler.invoke(Unknown Source) 

我从这个参考文献中Proguard issue while using GSON尝试了Proguard规则 https://github.com/square/retrofit/issues/372但它无效

1 个答案:

答案 0 :(得分:0)

好吧,看起来你有两个选择:

1)将所有反序列化和序列化模型移动到特定包中,并在proguard-rules.pro中添加完整的包名称:

e.g.

-keep class com.mycompany.myproject.mydata.model.** { *; }

然后它会起作用,因为这些文件不会被预测。

2)您可以在模型的数据成员中使用@SerializedName@Export注释,如下所示:

public class KeyValue {
    @SerializedName("Key")
    @Expose
    private String key;
    @SerializedName("Value")
    @Expose
    private String value;

    public String getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }
}

然后你甚至可以预测模型。

希望它会有所帮助!!!