2017-02-14 14 views
2

Что проблема: У меня есть основной вид деятельности, которые имеют всего 7 фрагментов, добавленные к нему, когда он будет загружен: 2 выдвижных фрагменты навигации, 1 ViewPager Основной фрагмент и 4 фрагментов ViewPager ребенка.IndexOutOfBoundsException в FragmentManager при возобновлении активности

новые фрагменты добавляются всякий раз, когда есть необходимость. Таким образом, еще два фрагмента добавляются до возникновения проблемы. и последний добавленный фрагмент открывает еще одно действие «cardActivity». Когда cardActivity закончена на спине давила на программно она будет закончена затем произошла следующая ошибка:

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)  

Эта ошибка происходя случайно, иногда это будет происходить, и иногда это не будет.

То, что я пытался до сих пор: я попытался воспроизвести эту проблему, а также проверить, если какой-то фрагмент удаляется между, но не фрагмент не будет удален.

Я также нашел эту же проблему здесь: https://code.google.com/p/android/issues/detail?id=231430 Но там нет решения. Также нет ничего сделано в OnResume MainActivity (в), его просто подменен, ничего:

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

Может кто-нибудь сказать мне, что может быть возможной причиной этой проблемы?

+1

Никто не может помочь вам, если вы не размещаете соответствующий код. –

+0

, но ничего не сделано в OnResume() и в CardActivity finish() нажатием кнопки BackAction. –

+0

Отправьте код 'OnBackStackChangedListener' метода вашего фрагмента. –

ответ

2

Попробуйте это для ручки Exception

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

Я все еще получаю исключение для этого, но он разрешил сбой приложения, но не повлиял на поток моего приложения, поэтому я хочу отметить это как правильный ответ. –

1

Это не решение, но шаг в правильном направлении :)

Я думаю, это вопрос - https://code.google.com/p/android/issues/detail?id=231430

Кто-то уже об этом и в настоящее время отслеживаются. Я думаю, вы можете добавить свои 2 цента и помочь с вашими данными о том, когда это происходит, и, если возможно, предоставить свое приложение для отбора проб.

 Смежные вопросы

  • Нет связанных вопросов^_^