我照着Hello.Android.3rd.Edition.pdf写了一个九宫格游戏,能正常运行,运行后如图所示:
然后点击New Game:
弹出Dialog:
点击任意难度进入,出现错误:android has stopped unexpectedly
Logcat:
- Java code
12-14 01:16:29.082: D/Sudoku(288): clicked on……0 12-14 01:16:29.132: D/Sudoku(288): onCreate 12-14 01:16:29.263: D/Sudoku(288): onSizeChanged:width 35.555557,height 47.77778 12-14 01:16:29.372: D/AndroidRuntime(288): Shutting down VM 12-14 01:16:29.372: W/dalvikvm(288): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 12-14 01:16:29.412: E/AndroidRuntime(288): FATAL EXCEPTION: main 12-14 01:16:29.412: E/AndroidRuntime(288): java.lang.NullPointerException 12-14 01:16:29.412: E/AndroidRuntime(288): at org.example.Sudoku.PuzzleView.onDraw(PuzzleView.java:162) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.View.draw(View.java:6740) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.View.draw(View.java:6743) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.widget.FrameLayout.draw(FrameLayout.java:352) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.View.draw(View.java:6743) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.widget.FrameLayout.draw(FrameLayout.java:352) 12-14 01:16:29.412: E/AndroidRuntime(288): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1842) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewRoot.draw(ViewRoot.java:1407) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.os.Handler.dispatchMessage(Handler.java:99) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.os.Looper.loop(Looper.java:123) 12-14 01:16:29.412: E/AndroidRuntime(288): at android.app.ActivityThread.main(ActivityThread.java:4627) 12-14 01:16:29.412: E/AndroidRuntime(288): at java.lang.reflect.Method.invokeNative(Native Method) 12-14 01:16:29.412: E/AndroidRuntime(288): at java.lang.reflect.Method.invoke(Method.java:521) 12-14 01:16:29.412: E/AndroidRuntime(288): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 12-14 01:16:29.412: E/AndroidRuntime(288): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 12-14 01:16:29.412: E/AndroidRuntime(288): at dalvik.system.NativeStart.main(Native Method)
我前面只知道这种错误是由于没注册Activity造成的,但我全部注册了
请问从这个日志能看出错误在哪吗?有很多个CLASS,我也不知道该帖哪段代码出来
- Java code
private static final String TAG = "Sudoku"; private void openNewGameDialog() { new AlertDialog.Builder(this).setTitle(R.string.new_game_title).setItems(R.array.difficulty,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { startGame(i); // TODO Auto-generated method stub } }).show(); } private void startGame(int i) { Log.d(TAG, "clicked on……"+i); Intent intent = new Intent(Sudoku.this,Game.class); intent.putExtra(Game.KEY_DIFFICULTY, i); startActivity(intent); //Start game click here } }