【问题标题】:Why my app forcecloses when opening AlertDialog为什么打开 AlertDialog 时我的应用程序强制关闭
【发布时间】:2014-09-24 00:57:37
【问题描述】:

我的应用出现错误。我正在尝试使用 AlertDialog 在应用程序中显示“信用”,但是当我单击“信用”一词时,应用程序只是强制关闭,为什么?这是我的代码:

 else if (mMergeAdapter.getAdapter(position).equals(
                    mMenuAdapter)) {
                // handle menu items
                switch ((int) mMergeAdapter.getItemId(position)) {
                    case 0:
                        Intent intent2 = new Intent(Browser.this,
                                SettingsActivity.class);
                        startActivity(intent2);
                        break;
                    case 1:
                        AlertDialog alertDialog = new AlertDialog.Builder(Browser.this).create();
                        alertDialog.setTitle("Credits");
                        alertDialog.setMessage("Coding -> Traabefi ");
                        alertDialog.setIcon(R.drawable.ic_launcher);
                        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int a) { alertDialog.this.cancel();
                        }});
                        alertDialog.show();
                    case 2:
                        finish();

Logcat

09-23 18:48:02.606 30963 30963 D dalvikvm com.tproductions.Openit 后期启用 CheckJNI 09-23 18:48:02.806 30963 30963 W ResourceType com.tproductions.Openit 创建 80 字节的字符串缓存 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit:EGL 1.4 高通构建:() 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit OpenGL ES 着色器编译器版本:E031.24.00.07 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit 构建日期:2014 年 4 月 7 日星期一 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit 本地分支:au011 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit 远程分支: 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit 本地补丁: 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit 重建分支: 09-23 18:48:02.966 30963 30963 D OpenGLRenderer com.tproductions.Openit 启用调试模式 0 09-23 18:48:03.356 30963 30963 I ActivityManager com.tproductions.Openit 时间线: Activity_idle id: android.os.BinderProxy@42dd99e8 time:88828979 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit
09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit android.view.WindowLeaked: Activity com.tproductions.Openit.Browser 已泄露窗口 com.android.internal.policy.impl.PhoneWindow$DecorView{4300d1a8 V.E. .... R.....ID 0,0-684,662} 最初添加在这里 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.view.ViewRootImpl.(ViewRootImpl.java:350) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.app.Dialog.show(Dialog.java:294) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at com.tproductions.Openit.Browser$100000003.onItemClick(Browser.java:340) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.widget.AdapterView.performItemClick(AdapterView.java:299) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.widget.AbsListView.performItemClick(AbsListView.java:1113) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.widget.AbsListView$PerformClick.run(AbsListView.java:2911) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.widget.AbsListView$3.run(AbsListView.java:3645) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.os.Handler.handleCallback(Handler.java:733) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.os.Handler.dispatchMessage(Handler.java:95) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.os.Looper.loop(Looper.java:212) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at android.app.ActivityThread.main(ActivityThread.java:5135) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at java.lang.reflect.Method.invokeNative(Native Method) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at java.lang.reflect.Method.invoke(Method.java:515) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693) 09-23 18:48:09.346 30963 30963 E WindowManager com.tproductions.Openit at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 错误日志说了什么?这就是关键。
  • 我正在使用 AIDE for android 所以没有 logcat
  • 大声笑,然后你如何调试你的代码?
  • 使用它。我正在用手机编码
  • 你真的想在你的 switch 语句中进入下一个案例并完成你的活动吗???

标签: android android-alertdialog


【解决方案1】:

alertDialog.show(); 后面加上break; 发生错误是因为活动正在被销毁,但对话框的内存仍在被占用。

【讨论】:

    【解决方案2】:

    一定要休息一下;在您致电 alertDialog.show();

    这将防止你陷入案例 2 并完成我认为你不打算做的活动。

    【讨论】:

      猜你喜欢
      • 2015-04-11
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多