【问题标题】:Due to Proguard I am getting this error for list iterator由于 Proguard,我收到列表迭代器的此错误
【发布时间】:2016-04-13 13:58:49
【问题描述】:

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

java.lang.NullPointerException:尝试调用接口方法 空对象上的“java.util.Iterator java.util.List.iterator()” 参考 在 dkw.a(未知来源) 在 dmh.a(未知来源) 在 dmh.success(未知来源) 在 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) 在 java.lang.reflect.Method.invoke(本机方法) 在 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)

【问题讨论】:

  • 我们需要看一些代码。
  • 另外因为你正在使用改造,请检查square.github.io/retrofit中的proguard部分
  • @JoaoSousa 您需要哪一部分代码 progaurd one 或 api 类代码,否则?????

标签: java android android-proguard


【解决方案1】:

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

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

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

您的 POJO 应如下所示:

@SerializedName("name")
String name;

@SerializedName("foo")
String foo;

【讨论】:

  • 收到错误,因为我正在点击的 api 有错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
相关资源
最近更新 更多