8

I see quite a good amount of ANRs happening inside androidx.recyclerview.widget.AdapterHelper.findPositionOffset. The thread is runnable, but I don't see any issue with other threads which are all waiting or native.

Here's the stacktrace of main:

"main" prio=5 tid=1 Runnable
  at androidx.recyclerview.widget.AdapterHelper.findPositionOffset (AdapterHelper.java:472)
  at androidx.recyclerview.widget.AdapterHelper.canFindInPreLayout (AdapterHelper.java:422)
  at androidx.recyclerview.widget.AdapterHelper.applyUpdate (AdapterHelper.java:194)
  at androidx.recyclerview.widget.AdapterHelper.preProcess (AdapterHelper.java:105)
  at androidx.recyclerview.widget.RecyclerView.processAdapterUpdatesAndSetAnimationFlags (RecyclerView.java:3793)
  at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1 (RecyclerView.java:4039)
  at androidx.recyclerview.widget.RecyclerView.dispatchLayout (RecyclerView.java:3849)
  at androidx.recyclerview.widget.RecyclerView.onLayout (RecyclerView.java:4404)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
  at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout (SwipeRefreshLayout.java:689)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
  at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at androidx.coordinatorlayout.widget.CoordinatorLayout.layoutChild (CoordinatorLayout.java:1213)
  at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild (CoordinatorLayout.java:899)
  at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout (CoordinatorLayout.java:919)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
  at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1829)
  at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1673)
  at android.widget.LinearLayout.onLayout (LinearLayout.java:1582)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at androidx.drawerlayout.widget.DrawerLayout.onLayout (DrawerLayout.java:1231)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
  at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1829)
  at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1673)
  at android.widget.LinearLayout.onLayout (LinearLayout.java:1582)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
  at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1829)
  at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1673)
  at android.widget.LinearLayout.onLayout (LinearLayout.java:1582)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
  at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
  at com.android.internal.policy.DecorView.onLayout (DecorView.java:779)
  at android.view.View.layout (View.java:21931)
  at android.view.ViewGroup.layout (ViewGroup.java:6260)
  at android.view.ViewRootImpl.performLayout (ViewRootImpl.java:3081)
  at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2591)
  at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1722)
  at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7605)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1029)
  at android.view.Choreographer.doCallbacks (Choreographer.java:852)
  at android.view.Choreographer.doFrame (Choreographer.java:787)
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1014)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7397)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:492)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:935)

What else could be causing this if the main thread isn't the issue?

devgianlu
  • 1,547
  • 13
  • 25
  • We do seem to have the exact same issue. Did you find a solution? – Floern Dec 08 '20 at 10:52
  • Absolutely not, the solution is to "code better". This issue usually comes from multi Thread access to the list or modifying the list from RecyclerView callbacks. – devgianlu Dec 08 '20 at 13:10

0 Answers0