Android studio:从菜单调用警报对话框时会导致崩溃,但从按钮调用时不会导致崩溃。我做错了什么?

Android studio:从菜单调用警报对话框时会导致崩溃,但从按钮调用时不会导致崩溃。我做错了什么?,android,android-studio,android-alertdialog,Android,Android Studio,Android Alertdialog,我有一个显示AlertDialog的方法: public void showTestDialog() { new AlertDialog.Builder(this) .setMessage("Message") .show(); } 它本来要复杂得多,有一个标题,正面和负面按钮,每个按钮都调用更多的代码,等等。这是我能得到的最基本的信息,但仍然会崩溃 当我按下按钮时,它工作正常 public void testButt

我有一个显示AlertDialog的方法:

public void showTestDialog() {
    new AlertDialog.Builder(this)
            .setMessage("Message")
            .show();
}
它本来要复杂得多,有一个标题,正面和负面按钮,每个按钮都调用更多的代码,等等。这是我能得到的最基本的信息,但仍然会崩溃

当我按下按钮时,它工作正常

public void testButton(View view) {
    showTestDialog();
}
但当我从菜单项单击调用它时,它在显示后几秒钟崩溃

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.testDialog:
            showTestDialog();
            return true;
        default:
            return false;
    }
}
在我的控制台/日志窗口中,这是我单击菜单项时出现的行:

D/OpenGLRenderer:0x9fa61c80(MenuPopupWindow$MenuDropDownList视图)上的EndAllActivateAnimators,句柄为0x92d16a80

。。。这是虚拟设备突然关闭时出现的唯一一行:

设备仿真器-5554已断开连接,监视已停止

这是碰撞报告窗口:

我已经为我的GPU(GTX 1070)安装了最新的驱动程序,但还是继续通过新的下载重新安装了,但没有骰子。
我已经干了好几个小时了,运气不好。我做错了什么?我对这个很陌生。谢谢

创建具有静态上下文的对话框,如
newalertdialog.Builder(mContext.setMessage(“Message”).show()此mContext在oncreate方法中分配上下文。

在oncreate中定义AlertDialog实例,然后在菜单按钮上单击显示对话框。您也不需要其他方法来显示对话框。

奇怪!我以前没有遇到过这样的问题。我想知道你的模拟器的内存设置是什么?能否为模拟器提供足够的内存和存储空间,使其能够顺利运行?你试过在真实的设备上运行你的代码吗?它在那里也会崩溃吗?@ReazMurshed我不知道如何为它分配内存和存储。我还没有学会如何在真正的设备上运行。我尝试了你的建议,但仍然得到了相同的结果。我也尝试过这个,但我得到了相同的结果。我在main类中初始化了警报,在onCreate方法中设置了所有标题、消息和按钮,然后在按下菜单项时简单地告诉警报“.show();”。