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が発生しているコードの行番号です。したがって、初期化されておらず、null 参照を持つオブジェクトが原因である可能性があるその行を見てください。

たとえば、あなたが持っている場合

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 に答える