2016-06-06 11 views
0

Ich versuche, eine einfache CRUD-Anwendung in Android zu erstellen.ProgressDialog verursacht Absturz der App in Android

App stürzt ab, wenn ich mich anmelde, aber intern loggt sie mich ein. Das gleiche Problem, wenn ich mich abmelde. Ich bekomme einen Fehler unter progressDialog.dismiss(). Hier

ist der Code in AsyncTask Klasse:

@Override 
protected void onPreExecute(){ 
    super.onPreExecute(); 
    path = ctx.getString(R.string.url); 
    progressDialog = new ProgressDialog(ctx); 
    progressDialog.setTitle("Signing In"); 
    progressDialog.setMessage("Validating your credentials!"); 
    //progressDialog.setCancelable(false); 
    progressDialog.show(); 
} 

Und hier ist mein Code in OnPostExecute Methode:

@Override 
protected void onPostExecute(String result){ 
    super.onPostExecute(result); 
    if(progressDialog!=null){ 
     if(progressDialog.isShowing()){ 
      progressDialog.dismiss(); 
     } 
     progressDialog = null; 
    } 
    //some more code 
} 

Ich erhalte ein Fenster Leck Fehler bei progressDialog.show() Linie und IllegalArgumentException Fehler auf progressDialog.dismiss() Linie.

Hier ist meine Aktivitätsprotokoll:

06-07 02:14:11.155 1828-1828/com.example.thadaninilesh.productapp E/WindowManager: android.view.WindowLeaked: Activity com.example.thadaninilesh.productapp.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{2b714c45 V.E..... R......D 0,0-959,322} that was originally added here 
                        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363) 
                        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271) 
                        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85) 
                        at android.app.Dialog.show(Dialog.java:298) 
                        at com.example.thadaninilesh.productapp.BackgroundUserLogoutTask.onPreExecute(BackgroundUserLogoutTask.java:56) 
                        at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:591) 
                        at android.os.AsyncTask.execute(AsyncTask.java:539) 
                        at com.example.thadaninilesh.productapp.DashboardFragment$4.onClick(DashboardFragment.java:61) 
                        at android.view.View.performClick(View.java:4780) 
                        at android.view.View$PerformClick.run(View.java:19866) 
                        at android.os.Handler.handleCallback(Handler.java:739) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:135) 
                        at android.app.ActivityThread.main(ActivityThread.java:5254) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:372) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

06-07 02:14:12.447 1828-1828/com.example.thadaninilesh.productapp E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.example.thadaninilesh.productapp, PID: 1828 
                       java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{2b714c45 V.E..... R......D 0,0-959,322} not attached to window manager 
                        at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:396) 
                        at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:322) 
                        at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116) 
                        at android.app.Dialog.dismissDialog(Dialog.java:341) 
                        at android.app.Dialog.dismiss(Dialog.java:324) 
                        at com.example.thadaninilesh.productapp.BackgroundUserLogoutTask.onPostExecute(BackgroundUserLogoutTask.java:117) 
                        at com.example.thadaninilesh.productapp.BackgroundUserLogoutTask.onPostExecute(BackgroundUserLogoutTask.java:35) 
                        at android.os.AsyncTask.finish(AsyncTask.java:636) 
                        at android.os.AsyncTask.access$500(AsyncTask.java:177) 
                        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:135) 
                        at android.app.ActivityThread.main(ActivityThread.java:5254) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:372) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
+0

Bitte vollständige Fehlerprotokoll veröffentlichen. – Rohit5k2

+0

Ich habe meine Frage mit dem kompletten Aktivitätsprotokoll aktualisiert ... Bitte helfen Sie mir wenn möglich .. –

Antwort

0

Es ist wie die Aktivität/Fragment sieht, wo Sie Ihre progressdialog sind zeigt zerstört wird, bevor der Dialog des Feldes verwiesen. Das gibt Ihnen einen Absturz mit

IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView not attached to window manager 

Also, bevor Sie Ihre Aktivität beenden, schließen Sie Ihren Fortschritt Dialog.

+0

Danke für die Hilfe .. es hat funktioniert! –

Verwandte Themen