【发布时间】:2021-02-24 10:02:15
【问题描述】:
我有一个最近发布的 Android 应用,并且我收到了来自 Google Play 管理中心的崩溃报告。其中一次崩溃很奇怪。它发生在类似于以下的代码中:
private final List<Item> items = new ArrayList<>();
public void addItem(Item item) {
items.add(item); // NullPointerException here!!
}
显然items 在调用addItem 时为空,但在我看来这是不可能的——我已经在声明站点初始化了它。我无法想象会发生这种情况的情况,但这种情况经常发生。有什么想法吗?
【问题讨论】:
-
列表真的是
ArrayList吗?也可能是item为 null 并且列表不接受 null 元素(ArrayList确实接受 null)。 -
请贴出异常跟踪,如果可以的话,可以贴出类代码,以及Item类代码。
-
@MA 真的是
ArrayList。 -
@RoieShlosberg 抱歉,由于 NDA,我无法发布代码,但堆栈跟踪的第一行指向
items.add(item)行。 -
尝试检查调用 addItem 的位置。想到的一件事是,您可能会在初始化项目之前从构造函数中调用它。
标签: java android nullpointerexception crash