0

In my app, I am getting a strange issue with recyclerview. Below is the crashlog from Crashlytics:

Fatal Exception: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 0(offset:4).state:5
   at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4368)
   at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4326)
   at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1955)
   at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1364)
   at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1327)
   at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:556)
   at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2667)
   at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3011)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
   at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1732)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1497)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1080)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:907)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:493)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
   at android.view.View.layout(View.java:16653)
   at android.view.ViewGroup.layout(ViewGroup.java:5438)
   at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2198)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1958)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1134)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6045)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860)
   at android.view.Choreographer.doCallbacks(Choreographer.java:672)
   at android.view.Choreographer.doFrame(Choreographer.java:608)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5441)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

In past 3 months, lots of users got affected due to this issue. The crashlog does not have any reference to any file from my project. I am not getting idea of how should I reproduce this issue. There are several places where I am using recycler view within the app.

Nitish
  • 3,097
  • 13
  • 45
  • 80
  • you must be getting this error in your activity or fragment when you clicked on recycler and the then back to same activity/fragment and scrolling the recycler?? – Ankush Bist Jan 19 '17 at 06:16
  • @AnkushBist Is this issue device specific? I own Moto G4 plus, on which I am not facing this issue. – Nitish Jan 19 '17 at 06:23
  • 1
    This is caus u may have modified your arrayList of model after seting the adapter and forgot to notify to your adapter. use adapter.notifyDataSetChanged(); when ever you update your model or ArrayList of model. I'm sure this will help. – HAXM Jan 19 '17 at 06:25
  • no not device specific. But first clear the issue is exactly what i wrote above in comment! – Ankush Bist Jan 19 '17 at 06:26
  • [Refer this question.](http://stackoverflow.com/questions/30220771/recyclerview-inconsistency-detected-invalid-item-position) – Ashish John Jan 19 '17 at 07:44

0 Answers0