Java中事件处理程序中的NullPointerException
在我的Android应用程序中,我有一个从另一个线程调用的事件处理程序。当调用处理程序时,我的一些私有字段为null,因此我得到一个NullPointerException,因为我试图从null对象访问一个方法。我看不出为什么它们会为null,因为我之前实例化了字段,并且没有在其他任何地方设置字段 这可能与交叉线程有关吗?字段在一个线程中设置,但被另一个线程访问。。?不,是吗?它们不应该为空。。我快发疯了,但这可能是一个我现在无法发现的小错误Java中事件处理程序中的NullPointerException,java,android,events,nullpointerexception,Java,Android,Events,Nullpointerexception,在我的Android应用程序中,我有一个从另一个线程调用的事件处理程序。当调用处理程序时,我的一些私有字段为null,因此我得到一个NullPointerException,因为我试图从null对象访问一个方法。我看不出为什么它们会为null,因为我之前实例化了字段,并且没有在其他任何地方设置字段 这可能与交叉线程有关吗?字段在一个线程中设置,但被另一个线程访问。。?不,是吗?它们不应该为空。。我快发疯了,但这可能是一个我现在无法发现的小错误 我想当你没有代码的时候很难回答,但是我不能在这里发布
我想当你没有代码的时候很难回答,但是我不能在这里发布我的整个解决方案。也许有人能给我指出正确的方向,让我知道该找什么?我终于找到了解决办法。我发现Android两次启动我的活动。显然,在一个活动中,对象的状态很好,但在另一个活动中,我的字段为null 当设备的方向改变时,安卓显然会停止活动并启动另一个活动。我找到了解决办法并
感谢你们的帮助,尽管你们的帮助不多。要更快地获得更好的帮助,请提供一个。你们确定这是另一个
线程吗?这不是一项活动
?在任何情况下,如果您引用的字段是null
,您应该检查对象是否为null,或者这些字段是否为null。这些是Android系统事件,比如MotionEvent吗?如果是,则它们位于应用程序的事件线程上。另一条线是什么?您可能需要提供一些代码——不是整个解决方案,而是活动的相关部分以及其他线程。@Pheonixblade9该对象在我的活动类中创建为私有字段,然后由另一个线程在我的活动中使用getter访问。那会是个问题吗?那绝对会是个问题。您需要确保使用的是runOnUIThread(newrunnable(){})代码>如果您正在从另一个线程访问绑定到UI线程的资源。