尝试在空对象引用上调用虚方法GapWorker.remove(RecyclerView)'

kar*_*nji 5 java android android-layout android-recyclerview

我得到这个错误Recyclerviewproduction,但不知道究竟在类

我做了什么

谷歌它发现https://issuetracker.google.com/issues/38375597,其中人们说它的android bug并修复了support lib 27.1.0

我更新了我的支持lib和buildVersion

support           : '27.1.0',
buildToolsVersion: '27.0.3',
compileSdkVersion : 26,
Run Code Online (Sandbox Code Playgroud)

这种崩溃仍然发生

错误日志

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.GapWorker.remove(android.support.v7.widget.RecyclerView)' on a null object reference
       at android.support.v7.widget.RecyclerView.onDetachedFromWindow(RecyclerView.java:2534)
       at android.view.View.dispatchDetachedFromWindow(View.java:13586)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2849)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2846)
       at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3076)
       at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5709)
       at android.view.ViewRootImpl.die(ViewRootImpl.java:5686)
       at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:387)
       at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:342)
       at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3893)
       at android.app.ActivityThread.access$1500(ActivityThread.java:164)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:159)
       at android.app.ActivityThread.main(ActivityThread.java:5461)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
Run Code Online (Sandbox Code Playgroud)

MK *_*lan 2

当没有LayoutManagerRecyclerView. 你可以这样做

final LinearLayoutManager layoutManager = new LinearLayoutManager(context);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
Run Code Online (Sandbox Code Playgroud)