Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
回收视图和AdapterHelper中的Android ANR_Android_Android Recyclerview_Android Anr Dialog - Fatal编程技术网

回收视图和AdapterHelper中的Android ANR

回收视图和AdapterHelper中的Android ANR,android,android-recyclerview,android-anr-dialog,Android,Android Recyclerview,Android Anr Dialog,我看到在androidx.recyclerview.widget.AdapterHelper.findPositionOffset中发生了相当多的ANR。该线程是可运行的,但我看不出其他线程有任何问题,这些线程都在等待或本机运行 这是main的堆栈跟踪: "main" prio=5 tid=1 Runnable at androidx.recyclerview.widget.AdapterHelper.findPositionOffset (AdapterHelper.j

我看到在
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
线程不是问题所在,那么还有什么原因会导致这种情况呢?

我们似乎也有同样的问题。你找到解决办法了吗?绝对没有,解决办法是“编写更好的代码”。此问题通常来自对列表的多线程访问或通过RecyclerView回调修改列表。