有一些開發人員報告說,看到下面的堆棧跟蹤調用虛方法RecyclerView $ ViewHolder.shouldIgnore()」,因爲升級到Android支持23.2.0:NullPointerException異常 - 嘗試在空對象引用
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2913)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1445)
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:144)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:282)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:821)
at android.view.Choreographer.doCallbacks(Choreographer.java:606)
at android.view.Choreographer.doFrame(Choreographer.java:575)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:807)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6895)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
出現這種情況當啓用RecyclerView的更改動畫並調用相應的RecyclerView.Adapter方法notifyItemInserted(),notifyItemRemoved()等以指示對由適配器管理的列表進行了單獨更改(與批量更改相反,如所示通過notifyDataSetChanged())。
這是由於RecyclerView中的錯誤,還是我們開發人員做錯了什麼?
所報告的問題已被固定在未來支持圖書館。如果您在將來的支持庫中再次遇到此問題,請通過提供包含示例應用程序在內的所有必要信息來提出新問題來通知我們。如果問題仍然存在,請通過Google問題跟蹤器進行舉報,然後重新審覈。 https://issuetracker.google.com/issues/37078411 –