Android 带有Kotlin列表对象/GSON的NullPointerException
我使用GSON解析来自web服务的JSON。我在测试设备或模拟器上对此没有任何问题,但当我尝试访问列表对象之一时,在游戏控制台上的启动前报告测试中,我会遇到NullPointerException崩溃 在访问对象之前,我已经尝试过检查对象是否为null,但在启动前的报告中仍然看到崩溃 下面是包含导致崩溃的列表对象的Hourly data类:Android 带有Kotlin列表对象/GSON的NullPointerException,android,kotlin,gson,Android,Kotlin,Gson,我使用GSON解析来自web服务的JSON。我在测试设备或模拟器上对此没有任何问题,但当我尝试访问列表对象之一时,在游戏控制台上的启动前报告测试中,我会遇到NullPointerException崩溃 在访问对象之前,我已经尝试过检查对象是否为null,但在启动前的报告中仍然看到崩溃 下面是包含导致崩溃的列表对象的Hourly data类: data class Hourly( @SerializedName("data") val data: List<Conditions>
data class Hourly(
@SerializedName("data") val data: List<Conditions> = listOf(),
@SerializedName("summary") val summary: String = "" //Partly cloudy in the evening
)
另一件需要注意的事情是,在过去的一年中,这段代码运行良好,但当我将应用程序更新为API 28和Kotlin 1.3.50时,崩溃开始发生
更新
我尝试将我的数据模型类中的几乎所有对象都设置为可空,但仍然遇到崩溃。下面是崩溃日志的结尾,以防有帮助:
FATAL EXCEPTION: main
Process: com.xxx.xxxx, PID: 27844
java.lang.NullPointerException: throw with null exception
at com.xxx.xxxx.model.Hourly.getData(Hourly.java:3)
at com.xxx.xxxx.view.UserInterface.updateCurrently(UserInterface.java:38)
基于此,我假设我应该每小时检查一次空值。数据…我不知道为什么,但在我的发布版本设置中关闭minifyEnabled并打开multidexEnabled修复了此错误。很高兴我花了整整3天的时间在这上面。你的列表中有空元素吗?也就是说,与其说是
List
,不如说它应该是List
您应该有另一个Conditions
数据类,在这个数据类中,您可以将属性设置为null,这些属性可能是null响应。我尝试将数据类中的每个项都设置为null,但我仍然看到崩溃。我将用崩溃日志更新这个问题,看看这是否有助于缩小范围。
FATAL EXCEPTION: main
Process: com.xxx.xxxx, PID: 27844
java.lang.NullPointerException: throw with null exception
at com.xxx.xxxx.model.Hourly.getData(Hourly.java:3)
at com.xxx.xxxx.view.UserInterface.updateCurrently(UserInterface.java:38)