我一直在我的开发者控制台错误报告中得到java.lang.NullPointerException,但我无法在模拟器或手机上重现它

时间:2012-05-17 07:52:37

标签: android nullpointerexception

java.lang.NullPointerException
at com.surreall.yacht.yatzee.achievementsCheck`(yatzee.java:2031)`
at com.surreall.yacht.yatzee.gameOver(yatzee.java:1929)
at com.surreall.yacht.yatzee$4.onClick(yatzee.java:1250)
at android.view.View.performClick(View.java:2485)
at android.view.View$PerformClick.run(View.java:9080)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)

显然它发生在函数achievementsCheck()中,但无论我做什么,我都无法重现空指针异常。 “2031”在那条线上意味着什么?可以告诉我什么吗?

2 个答案:

答案 0 :(得分:2)

根据您的问题“"2031"在该行中意味着什么?”它是 NullpointerException 生成的代码的行号。因此,查看该行可能是因为未初始化且具有空引用的对象。

例如,如果你有

Line 1: Object obj; //Note obj is not initialized here.
Line 2: 
Line 3:       //and you are trying to call
Line 4: 
Line 5: obj.toString()///NullPointer will be generated here

您将在第5行看到 NullPointerException

要解决此问题,您必须正确初始化obj,因此在这种情况下它将

Object obj = new Object();

答案 1 :(得分:-1)

java.lang.NullPointerException表示您的对象为Null,您应确保该对象存在。您可以打印该对象的某些成员以确保该对象存在。 “2031”是关于例外的代码。