由于Proguard我收到列表迭代器的这个错误

时间:2016-04-13 13:58:50

标签: java android android-proguard

这是我的堆栈跟踪, 当我在调试中运行我的应用程序时,它运行得很好 但 当我在发布模式下运行我的应用程序时,单击列表项时会出现以下错误。

  

java.lang.NullPointerException:尝试调用接口方法   ' java.util.Iterator java.util.List.iterator()'在null对象上   参考                                                                      在dkw.a(未知来源)                                                                      在dmh.a(未知来源)                                                                      在dmh.success(未知来源)                                                                      at retrofit.CallbackRunnable $ 1.run(未知来源)                                                                      在android.os.Handler.handleCallback(Handler.java:739)                                                                      在android.os.Handler.dispatchMessage(Handler.java:95)                                                                      在android.os.Looper.loop(Looper.java:135)                                                                      在android.app.ActivityThread.main(ActivityThread.java:5930)                                                                      at java.lang.reflect.Method.invoke(Native Method)                                                                      在java.lang.reflect.Method.invoke(Method.java:372)                                                                      在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1405)                                                                      在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)

1 个答案:

答案 0 :(得分:2)

我可以假设列表是空的,因为GSON没有正确地反序列化JSON,因为你的POJO被混淆了。

在包含您尝试迭代的列表的类中使用@SerializedName("json_variable_name_here")注释变量 例如,如果JSON是:

{
"name":"alice"
"foo" : "bar",
    }

你的POJO应该是这样的:

@SerializedName("name")
String name;

@SerializedName("foo")
String foo;