2017-02-14 1 views
2

, was das Problem ist: I eine Hauptaktivität aufweisen, die es insgesamt 7 Fragmente hinzugefügt, wenn sie geladen ist: 2 Schublade Navigations Fragmente, 1 viewPager Hauptfragment und 4 viewpager Kind-Fragmente.IndexOutOfBoundsException in FragmentManager, wenn die Aktivität wieder aufzunehmen

neue Fragmente werden hinzugefügt, wenn es nötig ist. Also werden zwei weitere Fragmente hinzugefügt, bevor das Problem auftritt. und das letzte Fragment, das hinzugefügt wird, öffnet eine andere Aktivität "cardActivity". Wenn diese cardActivity fertig ist auf der Rückseite angedrückt programmatisch ist es dann fertig ist der folgende Fehler aufgetreten:

02-14 11:06:29.759 16930-16930/com.myapp.app E/UncaughtException: java.lang.RuntimeException: Unable to resume activity {com.myapp.app/com.myapp.app.Activities.MainActivity}: java.lang.IndexOutOfBoundsException: Invalid index 7, size is 7 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2800) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2829) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1245) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5118) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 7, size is 7 
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 
at java.util.ArrayList.get(ArrayList.java:308) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1584) 
at android.support.v4.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:2842) 
at android.support.v4.app.FragmentController.dispatchResume(FragmentController.java:223) 
at android.support.v4.app.FragmentActivity.onResumeFragments(FragmentActivity.java:509) 
at android.support.v4.app.FragmentActivity.onPostResume(FragmentActivity.java:498) 
at android.support.v7.app.AppCompatActivity.onPostResume(AppCompatActivity.java:175) 
at android.app.Activity.performResume(Activity.java:5367) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2790) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2829)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1245)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:136)  
at android.app.ActivityThread.main(ActivityThread.java:5118)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:515)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)  
at dalvik.system.NativeStart.main(Native Method)  
02-14 11:06:30.062 16930-16930/com.myapp.app E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.myapp.app, PID: 16930 
java.lang.RuntimeException: Unable to resume activity {com.myapp.app/com.myapp.app.Activities.MainActivity}: java.lang.IndexOutOfBoundsException: Invalid index 7, size is 7 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2800) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2829) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1245) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5118) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 7, size is 7 
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 
at java.util.ArrayList.get(ArrayList.java:308) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1584) 
at android.support.v4.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:2842) 
at android.support.v4.app.FragmentController.dispatchResume(FragmentController.java:223) 
at android.support.v4.app.FragmentActivity.onResumeFragments(FragmentActivity.java:509) 
at android.support.v4.app.FragmentActivity.onPostResume(FragmentActivity.java:498) 
at android.support.v7.app.AppCompatActivity.onPostResume(AppCompatActivity.java:175) 
at android.app.Activity.performResume(Activity.java:5367) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2790) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2829)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1245)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:136)  
at android.app.ActivityThread.main(ActivityThread.java:5118)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:515)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)  
at dalvik.system.NativeStart.main(Native Method)  

Dieser Fehler zufällig wird auftreten, manchmal tritt es und manchmal wird es nicht.

Was ich bisher versucht hatte: ich versuchte, dieses Problem zu reproduzieren, und auch zu prüfen, ob einige Fragmente zwischen in entfernt werden, aber kein Fragment entfernt wird.

Ich fand auch das gleiche Problem hier: https://code.google.com/p/android/issues/detail?id=231430 Aber es gibt auch keine Lösung dort. Auch gibt es nichts in MainActivity der onResume() durchgeführt, es ist einfach außer Kraft gesetzt wurde, sonst nichts:

@Override 
protected void onResume() { 
    super.onResume(); 
} 

Kann mir jemand sagen, was die mögliche Ursache für dieses Problem sein könnte? Diese

+1

Niemand kann Ihnen helfen, wenn Sie nicht über einen entsprechenden Code schreiben. –

+0

aber in MainActivity ist OnResume() und in CardActivity finish() wird auf Zurück Drücken der Taste aufgerufen. –

+0

Geben Sie den Code der OnBackStackChangedListener-Methode für Ihr Fragment ein. –

Antwort

2

Versuchen Sie, diese für Griff Exception

@Override 
protected void onPostResume() { 
    try { 
     super.onPostResume(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

Ich bekomme immer noch eine Ausnahme, aber es hat den Absturz der App behoben, aber es hat keinen Einfluss auf den Fluss meiner App, also werde ich das als richtige Antwort markieren. –

1

ist keine Lösung, sondern ein Schritt in der richtigen Richtung :)

Ich denke, das ist die Frage - https://code.google.com/p/android/issues/detail?id=231430

Jemand hat dies bereits berichtet, und derzeit verfolgt. Ich denke, Sie können Ihre 2 Cent hinzufügen und helfen mit Ihren Eingaben, wann dieses Problem auftritt und wenn möglich, stellen Sie Ihre App zur Verfügung.

Verwandte Themen