0
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”是什么意思?那能告诉我什么吗?

4

1 回答 1

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();
于 2012-05-17T08:02:29.393 回答