RecyclerView: inconsistencia detectada. Posición de artículo inválida

Nuestro control de calidad ha detectado un error: al girar el dispositivo Android (Droid Turbo), lo siguienteAccidente relacionado con RecyclerView sucedió:

java.lang.IndexOutOfBoundsException: Inconsistencia detectada. Posición de elemento no válida 2 (desplazamiento: 2). Estado: 3

Para mí, parece un error interno dentro de RecyclerView, ya que no puedo pensar en ninguna forma de que esto sea causado directamente por nuestro código ...

¿Alguien ha encontrado este problema?

¿Cuál sería la solución?

Una solución brutal podría ser quizás detectar la excepción cuando sucede y volver a crear la instancia de RecyclverView desde cero, para evitar quedarse con un estado corrupto.

Pero, si es posible, me gustaría entender mejor el problema (y tal vez solucionarlo en su origen), en lugar de enmascararlo.

El error no es fácil de reproducir, pero es fatal cuando ocurre.

El seguimiento completo de la pila:

W / dalvikvm (7546): threadid = 1: hilo que sale con excepción no capturada (grupo = 0x41987d40) E / AndroidRuntime (7546): EXCEPCIÓN FATAL: E / AndroidRuntime principal (7546): Proceso: com.oblong.mezzedroid, PID: 7546 E / AndroidRuntime (7546): java.lang.IndexOutOfBoundsException: Inconsistencia detectada. Posición de elemento no válida 2 (offset: 2) .state: 3 E / AndroidRuntime (7546): en android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:3382) E / AndroidRuntime (7546): en android .support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:3340) E / AndroidRuntime (7546): en android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.javaR18untime) (7546): en android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1306) E / AndroidRuntime (7546): en android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1269) / AndroidRuntime (7546): at android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:523) E / AndroidRuntime (7546): at org.liboid.recycler_view.RecyclerViewContainer $ LiLinearLayoutCh. ) E / AndroidRuntime (7546): en android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:1942 ) E / AndroidRuntime (7546): en android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:2237) E / AndroidRuntime (7546): en org.liboid.recycler_view.LiRecyclerView.onLayout (LiRecyclerView.java:30 ) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546 ): en android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): en android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): en android.view .View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.FrameLayout.layoutChildren (FrameLayout .java: 453) E / AndroidRuntime (7546): en android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java: 4651) E / AndroidRuntime (7546): en android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime (7546): en android.widget.LinearLayout.layoutVertical (LinearLayout.java:1525) E / AndroidRuntime ( 7546): en android.widget.LinearLayout.onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): en com.oblong.mezzedroid.workspace.content.bins.BinsContainerLayout.onLayout (BinsContainerLayout.java:22) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime (7546): en android.widget.LinearLayout.layoutVertical (LinearLayout.java:1525) E / AndroidRuntime (7546): en android.widget.LinearLayout. onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java: 4651) E / Android Runtime (7546): en android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): en android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.FrameLayout. layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): en android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): en android.view.View.layout (View.java: 14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime ( 7546): en android.widget.LinearLayout.layoutVertical (LinearLayout.java:1525) E / AndroidRuntime (7546): en android.widget.LinearLayout.onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): en android. view.View.layout (View.java:14946) E / Andro idRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): en android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup. layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime (7546): en android.widget.LinearLayout.layoutVertical (LinearLayout.java: 1525) E / AndroidRuntime (7546): en android.widget.LinearLayout.onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime ( 7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): en android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): en android. widget.FrameLayout.onLayout (FrameLayout.java:3 88) E / AndroidRuntime (7546): en android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): en android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime ( 7546): en android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2132) E / AndroidRuntime (7546): en android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1872) E / AndroidRuntime (7546): en andro

Respuestas a la pregunta(30)

Su respuesta a la pregunta