java My app崩溃致命异常无法添加窗口
我对Android开发非常陌生,我创建了这个问答游戏。我的问题是,应用程序在打开几分钟后随机崩溃。撞车是随机发生的,所以我不知道是什么原因导致了撞车。下面是应用程序崩溃时的logcat错误代码
11-16 18:39:10.573 19023-19023/com.noxeternal.quizgame E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.noxeternal.quizgame, PID: 19023
安卓.view.WindowManager$BadTokenException: Unable to add window -- token 安卓.os.BinderProxy@d70d3e4 is not valid; is your activity running?
at 安卓.view.ViewRootImpl.setView(ViewRootImpl.java:679)
at 安卓.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
at 安卓.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
at 安卓.app.Dialog.show(Dialog.java:322)
at com.noxeternal.quizgame.MainActivity.gameOver(MainActivity.java:287)
at com.noxeternal.quizgame.MainActivity.access$300(MainActivity.java:19)
at com.noxeternal.quizgame.MainActivity$9.onFinish(MainActivity.java:307)
at 安卓.os.CountDownTimer$1.handleMessage(CountDownTimer.java:127)
at 安卓.os.Handler.dispatchMessage(Handler.java:102)
at 安卓.os.Looper.loop(Looper.java:154)
at 安卓.app.ActivityThread.main(ActivityThread.java:6176)
at java.lang.reflect.Method.invoke(Native Method)
at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:778)
以下是logcat中提到的代码
private void gameOver(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
alertDialogBuilder
.setMessage("Game over! Your score is " + mScore + " points.")
.setCancelable(false)
.setPositiveButton("NEW GAME",
new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialogInterface, int i){
finish();
startActivity(new Intent(getApplicationContext(),MainActivity.class));
}
})
.setNegativeButton("Exit",
new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialogInterface, int i){
Intent intent = new Intent(MainActivity.this, MainMenu.class);
startActivity(intent);
finish();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
private void startTimer(){
long millisInFuture = 60000;
long countDownInterval = 1000;
timer.setText("Time remaining: " + timer);
countDownTimer = new CountDownTimer(millisInFuture, countDownInterval) {
@Override
public void onTick(long millisUntilFinished) {
if(isPaused){
cancel();
} else {
timer.setText("Time remaining: " + millisUntilFinished / 1000);
remainingTime = millisUntilFinished;
}
}
@Override
public void onFinish() {
gameOver();
}
};
countDownTimer.start();
}
谢谢大家!
# 1 楼答案
尝试修改此代码:
为此:
# 2 楼答案
当您查看错误时,您可能会从给出错误的行中找到一些“链接”,您可以单击并查找。在您的情况下,错误出现在:
主要活动。第287行的类:
MainActivity.java:287
主要活动。第19行的类:
MainActivity.java:19
主要活动。第307行的类:
MainActivity.java:307
我认为这可能有助于识别错误