ArrayIndexOutOfBounds LifecycleRegistry.popParentState - PullRequest
0 голосов
/ 12 октября 2018

Я наткнулся на исключение, по которому у меня нет понятия, как это исправить.Вот трассировка стека:

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
        at java.util.ArrayList.remove(ArrayList.java:480)
        at android.arch.lifecycle.LifecycleRegistry.popParentState(LifecycleRegistry.java:194)
        at android.arch.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:293)
        at android.arch.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:332)
        at android.arch.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:137)
        at android.arch.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:123)
        at android.arch.lifecycle.ReportFragment.dispatch(ReportFragment.java:121)
        at android.arch.lifecycle.ReportFragment.onStart(ReportFragment.java:81)
        at android.app.Fragment.performStart(Fragment.java:2378)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1027)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1153)
        at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:2048)
        at android.app.FragmentController.dispatchStart(FragmentController.java:188)
        at android.app.Activity.performStart(Activity.java:6978)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2937)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045) 
        at android.app.ActivityThread.-wrap14(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6776) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) 

Я использую android.arch.lifecycle:extensions:1.1.1.


ОБНОВЛЕНИЕ

Я получил больше информации.Это происходит, когда я запускаю действие для результата из Fragment, вызывая Fragment.startActivityForResult().Это Fragment находится в «странном» месте.Вот структура его удержания Activity

- HoldingActivity
-- HoldingFragment
--- FragmentPagerAdapter
---- MyFragment // This is where I call the startActivityForResult

Еще один момент, который может помочь, заключается в том, что каждый уровень HoldingActivity использует ViewDataBinding.setLifecycleOwner(this), и к ним всем прикреплен ViewModel.

Запущенный Avtivity содержит Fragment, и они оба используют ViewDataBinding.setLifecycleOwner(this) и имеют ViewModel.

Дайте мне знать, если что-то еще может помочь решить эту проблемуСпасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...