【发布时间】:2022-11-02 19:39:06
【问题描述】:
Choreographer.java 第 966 行 android.view.Choreographer$CallbackRecord.run
致命异常:java.lang.NullPointerException 尝试在空对象引用上调用虚拟方法 'android.view.ViewGroup$LayoutParams android.view.View.getLayoutParams()'
androidx.recyclerview.widget.OrientationHelper$2.getDecoratedStart
(OrientationHelper.java:403)
androidx.leanback.widget.GridLayoutManager.getViewMin (GridLayoutManager.java:1159)
androidx.leanback.widget.GridLayoutManager$2.getEdge (GridLayoutManager.java:1746)
androidx.leanback.widget.Grid.removeInvisibleItemsAtEnd (Grid.java:416)
androidx.leanback.widget.GridLayoutManager.removeInvisibleViewsAtEnd
(GridLayoutManager.java:1840)
androidx.leanback.widget.GridLayoutManager.scrollDirectionPrimary
(GridLayoutManager.java:2473)
androidx.leanback.widget.GridLayoutManager.scrollVerticallyBy
(GridLayoutManager.java:2415)
androidx.recyclerview.widget.RecyclerView.scrollStep (RecyclerView.java:1972)
androidx.recyclerview.widget.RecyclerView$ViewFlinger.run (RecyclerView.java:5476)
android.view.Choreographer$CallbackRecord.run (Choreographer.java:966)
android.view.Choreographer.doCallbacks (Choreographer.java:790)
android.view.Choreographer.doFrame (Choreographer.java:721)
android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:951)
android.os.Handler.handleCallback (Handler.java:883)
android.os.Handler.dispatchMessage (Handler.java:100)
android.os.Looper.loop (Looper.java:214)
android.app.ActivityThread.main (ActivityThread.java:7356)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:492)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:930)
我收到此错误,并且发生频率小于 10%。 Logcat 描述不包含项目中使用的类。那么,这个错误是与android代码有关还是因为我们的项目代码?
【问题讨论】:
-
在调用
getLayoutParams之前,添加一个条件if(yourView != null) -
该代码编写在只读的 Android 内置类 OrientationHelper.java 中。
标签: android android-recyclerview