我的代码之外的空指针异常

Posted

技术标签:

【中文标题】我的代码之外的空指针异常【英文标题】:Null pointer exception outside my code 【发布时间】:2015-12-23 19:02:20 【问题描述】:

在我的代码中打开 ListActivity 时出现空指针异常,但所有跟踪都不是我的代码。

java.lang.NullPointerException 在 android.widget.AbsListView.obtainView(AbsListView.java:2606) 在 android.widget.ListView.makeAndAddView(ListView.java:1840) 在 android.widget.ListView.fillDown(ListView.java:681) 在 android.widget.ListView.fillFromTop(ListView.java:742) 在 android.widget.ListView.layoutChildren(ListView.java:1661) 在 android.widget.AbsListView.onLayout(AbsListView.java:2427) 在 android.view.View.layout(View.java:14938) 在 android.view.ViewGroup.layout(ViewGroup.java:4601) 在 android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021) 在 android.view.View.layout(View.java:14938) 在 android.view.ViewGroup.layout(ViewGroup.java:4601) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:448) 在 android.view.View.layout(View.java:14938) 在 android.view.ViewGroup.layout(ViewGroup.java:4601) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:448) 在 android.view.View.layout(View.java:14938) 在 android.view.ViewGroup.layout(ViewGroup.java:4601) 在 android.widget.LinearLayout.setChildFrame(LinearLayout.java:1694) 在 android.widget.LinearLayout.layoutVertical(LinearLayout.java:1552) 在 android.widget.LinearLayout.onLayout(LinearLayout.java:1465) 在 android.view.View.layout(View.java:14938) 在 android.view.ViewGroup.layout(ViewGroup.java:4601) 在 android.widget.FrameLayout.onLayout(FrameLayout.java:448) 在 android.view.View.layout(View.java:14938) 在 android.view.ViewGroup.layout(ViewGroup.java:4601) 在 android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2212) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2026) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1236) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5160) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:791) 在 android.view.Choreographer.doCallbacks(Choreographer.java:591) 在 android.view.Choreographer.doFrame(Choreographer.java:561) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777) 在 android.os.Handler.handleCallback(Handler.java:725) 在 android.os.Handler.dispatchMessage(Handler.java:92) 在 android.os.Looper.loop(Looper.java:176) 在 android.app.ActivityThread.main(ActivityThread.java:5365) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 在 dalvik.system.NativeStart.main(Native Method)

我如何知道错误发生在哪里?

【问题讨论】:

你能发布违规代码吗? 代码有点复杂,列表活动超过 1000 行,此错误仅在某些设备中发生。我需要知道如何检测错误,而不是发布完整代码,因为它非常复杂。 能否在调试时重现错误并隔离线路? 否,因为我从远程日志中收到错误,在我的设备中我无法重现此错误。 您是否正在创建任何自定义适配器类?适配器类仍然很大吗?此崩溃可能来自适配器类。 【参考方案1】:

正如@iagreen 所说,“具体来说,您正在从适配器的 getView 方法返回 null”。

在某些情况下,我在 getWiew 的自定义适配器中返回 null。

【讨论】:

以上是关于我的代码之外的空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

Grails 渲染插件的空指针异常

我以外的其他机器上的空指针异常[重复]

自定义页面适配器上的空指针异常

getGraphics() 上的空指针异常

对话框中按钮的空指针异常 -- Android -- JAVA

异步任务的空指针异常