Android studio:从菜单调用警报对话框时会导致崩溃,但从按钮调用时不会导致崩溃。我做错了什么?
我有一个显示AlertDialog的方法: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
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();”。