我的Android应用程序遇到了严重问题。
我的项目是一个基于片段的项目。
当我点击显示片段的某个按钮时,它会显示该片段没有问题。
"点击后退按钮,然后点击" show-fragment"按钮再次。"
如果我快速重复这些步骤,则log-cat上会显示以下错误,应用程序崩溃了。
08-21 19:37:23.557:E / dalvikvm(4975):线程创建失败(错误=尝试 再次,stacksize = 1016KB)08-21 19:37:23.557:E / dalvikvm(4975):线程 创建失败(错误=再试一次,stacksize = 984KB)08-21 19:37:23.558: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 952KB)08-21 19:37:23.558:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 920KB)08-21 19:37:23.558: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 1016KB)08-21 19:37:23.558:E / dalvikvm(4975):线程 创建失败(错误=再试一次,stacksize = 984KB)08-21 19:37:23.559: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 952KB)08-21 19:37:23.559:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 920KB)08-21 19:37:23.559: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 888KB)08-21 19:37:23.559:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 856KB)08-21 19:37:23.559: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 824KB)08-21 19:37:23.559:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 792KB)08-21 19:37:23.559: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 760KB)08-21 19:37:23.559:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 728KB)08-21 19:37:23.560: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 696KB)08-21 19:37:23.560:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 664KB)08-21 19:37:23.560: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 632KB)08-21 19:37:23.560:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 600KB)08-21 19:37:23.560: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 568KB)08-21 19:37:23.560:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 536KB)08-21 19:37:23.560: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 504KB)08-21 19:37:23.560:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 472KB)08-21 19:37:23.561: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 440KB)08-21 19:37:23.561:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 408KB)08-21 19:37:23.561: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 376KB)08-21 19:37:23.561:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 344KB)08-21 19:37:23.561: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 312KB)08-21 19:37:23.561:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 280KB)08-21 19:37:23.561: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 248KB)08-21 19:37:23.561:E / dalvikvm(4975):线程创建 失败(错误=再试一次,stacksize = 216KB)08-21 19:37:23.561: E / dalvikvm(4975):线程创建失败(错误=再试一次, stacksize = 184KB)08-21 19:37:23.562:E / dalvikvm(4975):线程创建 失败(错误=再试一次,堆栈大小= 152KB)08-21 19:37:23.876: A / libc(4975):致命信号11(SIGSEGV)在0x00000000(代码= 1),线程 4975(oman.tasklogger)08-21 19:37:23.876:A / libc(4975):发送停止 信号到pid:4975 in void debuggerd_signal_handler(int,siginfo_t *, 无效*)
我认为我的项目配置中可能存在内存问题。 任何有这种错误经验的人都应该帮助我。 当我重复显示警告对话框并多次按下后退按钮时,发生了同样的错误。
这是内存不足的问题吗?
这是我显示警告对话框的代码。
public class ReportFragment extends BaseFragment {
....
private void onShowAlertButtonClicked() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Fruits");
builder.setItems(new String[]{"Apple", "Orange", "Banana"}, null);
AlertDialog dialog = builder.create();
dialog.show();
}
...
}
总之,当多次触发此onShowAlertButtonClicked回调时,应用程序崩溃了。
我已经看到了堆栈溢出,它描述了Fragment中的AlertDialog
。
他们说上下文对AlertDialog
很重要。
所以我用各种上下文(如Activity和Application)更改了警告对话框的上下文,
但错误仍然存在。
对于Android忍者来说,这个错误也许并不难。
感谢您查看我的报告。
答案 0 :(得分:0)
试试这个
private void onShowAlertButtonClicked(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Fruits");
builder.setItems(new String[]{"Apple", "Orange", "Banana"}, null);
AlertDialog dialog = builder.create();
dialog.show();
}