为什么我的app force在打开AlertDialog时关闭

问题描述:

我的应用程序出现错误。我正在尝试使用AlertDialog在应用中显示“Credits”,但是当我点击“credits”这个词时,该应用只是强制关闭,为什么?这是我的代码:为什么我的app force在打开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 30963W¯¯ ResourceType com.tproductions.Openit创建80字节的字符串缓存 09-23 18:48:02.936 30963 30963我Adreno-EGL com.tproductions.Openit:EGL 1.4 QUALCOMM内部版本:() 09-23 18:48:02.936 30963 30963 I Adreno-EGL com.tproductions.Openit OpenGL ES Shader编译器版本:E031.24.00.07 09-23 18:48:02.936 30963 30963我Adreno-EGL com.tproductions.Openit构建日期:04/07/14 Mon 09-23 18:48:02.936 30963 30963我Adreno-EGL com.tproductions.Openit本地分支:au011 09-23 18:48:02.936 30963 30963我Adreno-EGL com.tproductions.Openit远程分支: 09- 23 18:48:02.936 30963 30963我Adreno-EGL com.tproductions.Openit本地修补程序: 09-23 18:48:02.936 30963 30963我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我ActivityManager com.tproductions.Openit时间轴:Activity_idle id:[email protected]时间: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 has leaked window com.android.internal.policy.impl.PhoneWindow $ DecorView {4300d1a8 VE .... 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.tprodu ctions.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在android.app.ActivityThread.main中的com.tproductions.Openit(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(本地方法)

+0

错误日志说了什么?这是关键。 – 2014-09-23 16:46:14

+0

我正在使用AIDE for android,所以没有logcat – Trabefi 2014-09-23 16:47:02

+0

lol以及你如何调试你的代码呢? – 2014-09-23 16:48:15

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

确保休息;在你呼叫alertDialog.show()之后;

这样可以防止你陷入第2种情况,并完成我认为你不打算做的活动。