首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

点击弹出的Dialog中Item后出现:该如何处理

2012-06-19 
点击弹出的Dialog中Item后出现:我照着Hello.Android.3rd.Edition.pdf写了一个九宫格游戏,能正常运行,运行

点击弹出的Dialog中Item后出现:
我照着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……012-14 01:16:29.132: D/Sudoku(288): onCreate12-14 01:16:29.263: D/Sudoku(288): onSizeChanged:width 35.555557,height 47.7777812-14 01:16:29.372: D/AndroidRuntime(288): Shutting down VM12-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: main12-14 01:16:29.412: E/AndroidRuntime(288): java.lang.NullPointerException12-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    }} 



先谢谢各位了,请帮我看看,第一次做就受挫了……

[解决办法]
PuzzleView.java的162行,空指针
[解决办法]
Java code
 int movesleft = 9 - game.getUsedTiles(i, j).length;
[解决办法]
探讨

我是自己在前面加了句IF
Java code

if(getUsedTiles(i, j) != null){
int movesleft = 9 - game.getUsedTiles(i, j).length;
……
}


算是临时解决了问题,不知道有没有什么隐患

热点排行