AppIntro: Android Version 7 java.lang.IndexOutOfBoundsException

Hello, I added 4 fragment and when clicking next button from 3rd fragment to 4th there was a java.lang.IndexOutOfBoundsException. Here is the stacktrace below:

java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
	at java.util.ArrayList.get(ArrayList.java:411)
	at android.support.v4.view.ViewPager.getChildDrawingOrder(ViewPager.java:828)
	at android.view.View.populateAccessibilityNodeInfoDrawingOrderInParent(View.java:6966)
	at android.view.View.onInitializeAccessibilityNodeInfoInternal(View.java:6925)
	at android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal(ViewGroup.java:3106)
	at android.view.View$AccessibilityDelegate.onInitializeAccessibilityNodeInfo(View.java:23403)
	at android.support.v4.view.AccessibilityDelegateCompatIcs.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompatIcs.java:101)
	at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompat.java:198)
	at android.support.v4.view.AccessibilityDelegateCompat.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompat.java:451)
	at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityNodeInfo(RecyclerViewAccessibilityDelegate.java:56)
	at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompat.java:246)
	at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompatJellyBean.java:66)
	at android.view.View.onInitializeAccessibilityNodeInfo(View.java:6539)
	at android.view.View.createAccessibilityNodeInfoInternal(View.java:6500)
	at android.view.View$AccessibilityDelegate.createAccessibilityNodeInfo(View.java:23472)
	at android.view.View.createAccessibilityNodeInfo(View.java:6483)
	at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:145)
	at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:119)
	at android.view.View.onInitializeAccessibilityEventInternal(View.java:6437)
	at android.view.View$AccessibilityDelegate.onInitializeAccessibilityEvent(View.java:23384)
	at android.support.v4.view.AccessibilityDelegateCompatIcs.onInitializeAccessibilityEvent(AccessibilityDelegateCompatIcs.java:97)
	at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:192)
	at android.support.v4.view.AccessibilityDelegateCompat.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:432)
	at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate.java:65)
	at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:241)
	at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:61)
	at android.view.View.onInitializeAccessibilityEvent(View.java:6423)
	at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:6290)
	at android.view.View$AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:23323)
	at android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatIcs.java:122)
	at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:223)
	at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:371)
	at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:268)
	at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatJellyBean.java:87)
	at android.view.View.sendAccessibilityEventUnchecked(View.java:6273)
	at android.support.v7.widget.RecyclerView.sendAccessibilityEventUnchecked(RecyclerView.java:3148)
	at android.view.View$SendViewStateChangedAccessibilityEvent.run(View.java:23509)
	at android.view.View$SendViewStateChangedAccessibilityEvent.runOrPost(View.java:23542)
	at android.view.View.notifyViewAccessibilityStateChangedIfNeeded(View.java:9407)
	at android.view.View.onFocusChanged(View.java:6158)
	at android.view.View.clearFocusInternal(View.java:6062)
	at android.view.View.unFocus(View.java:6095)
	at android.view.ViewGroup.unFocus(ViewGroup.java:995)
	at android.view.ViewGroup.unFocus(ViewGroup.java:997)
	at android.view.ViewGroup.unFocus(ViewGroup.java:997)
	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4739)
	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4726)
	at android.view.ViewGroup.removeView(ViewGroup.java:4657)
	at android.support.v4.view.ViewPager.removeView(ViewPager.java:1527)
	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1406)
	at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1523)
	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1598)
	at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2145)
	at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092)
	at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1969)
	at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620)
	at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
	at android.support.v4.view.ViewPager.populate(ViewPager.java:1268)
	at android.support.v4.view.ViewPager.populate(ViewPager.java:1116)
	at android.support.v4.view.ViewPager.onInterceptTouchEvent(ViewPager.java:2150)
	at com.github.paolorotolo.appintro.AppIntroViewPager.onInterceptTouchEvent(AppIntroViewPager.java:62)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2212)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2669)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2301)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2669)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2301)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2669)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2301)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2669)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2301)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2669)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2301)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2669)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2301)
	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:411)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1810)
	at android.app.Activity.dispatchTouchEvent(Activity.java:3061)
	at com.github.paolorotolo.appintro.AppIntroBase.dispatchTouchEvent(AppIntroBase.java:184)
	at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:373)
	at android.view.View.dispatchPointerEvent(View.java:10163)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4421)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4289)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3836)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3889)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3855)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3982)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3863)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4039)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3836)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3889)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3855)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3863)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3836)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6197)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6171)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6132)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6300)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:323)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:6077)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 16 (7 by maintainers)

Most upvoted comments

View.populateAccessibilityNodeInfoDrawingOrderInParent() is added from Android 7.0

-> ViewPager.populate() -> ViewPager.addNewItem() -> ViewGroup.addView() -> childCount 2=>3 -> … -> View.populateAccessibilityNodeInfoDrawingOrderInParent -> ViewPager.getChildDrawingOrder() CRASH !! mDrawingOrderedChildren count = 2, index =2 !!! -> … -> ViewPager.sortChildDrawingOrder() update mDrawingOrderedChildren size 2 => 3 too late !!!