RecyclerView和AdapterHelper中的Android ANR

问题描述

我看到androidx.recyclerview.widget.AdapterHelper.findPositionOffset内部发生了大量ANR。该线程是可运行的,但是我看不到其他所有正在等待或本机的线程的问题。

这是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)

如果main线程不是问题,那还有什么可能导致这种情况?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)