android.view.Gles20 RecordingCanvas中的NullPointerException

android.view.Gles20 RecordingCanvas中的NullPointerException,android,Android,我在android.view.GLES20RecordingCanvas.drawPatch()中看到了NullPointerException崩溃报告 Android源代码在这里 似乎仅在4.0.x版本的第97行崩溃,此时活动已启用硬件加速 堆栈跟踪: java.lang.NullPointerException at android.view.GLES20RecordingCanvas.drawPatch(GLES20RecordingCanvas.java:97) at android.g

我在android.view.GLES20RecordingCanvas.drawPatch()中看到了NullPointerException崩溃报告

Android源代码在这里

似乎仅在4.0.x版本的第97行崩溃,此时活动已启用硬件加速

堆栈跟踪:

java.lang.NullPointerException
at android.view.GLES20RecordingCanvas.drawPatch(GLES20RecordingCanvas.java:97)
at android.graphics.NinePatch.draw(NinePatch.java:125)
at android.graphics.drawable.NinePatchDrawable.draw(NinePatchDrawable.java:189)
at android.widget.ScrollBarDrawable.drawThumb(ScrollBarDrawable.java:178)
at android.widget.ScrollBarDrawable.draw(ScrollBarDrawable.java:137)
at android.view.View.onDrawVerticalScrollBar(View.java:9532)
at android.view.View.onDrawScrollBars(View.java:9476)
at android.view.View.draw(View.java:11091)
at android.widget.AbsListView.draw(AbsListView.java:3428)
at android.view.View.getDisplayList(View.java:10455)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.drawChild(ViewGroup.java:2858)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2497)
at android.view.View.draw(View.java:11067)
at android.view.View.getDisplayList(View.java:10455)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2605)
at android.view.View.getDisplayList(View.java:10418)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:879)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:1955)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1661)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2505)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4945)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

是否有一个简单的解决方法,或者我是否需要关闭受影响活动的硬件加速功能?

有一种解决方法。它归结为禁用硬件加速

  • 对于有问题的视图,使用myView.setLayerType(View.LAYER\u TYPE\u软件,null)
  • 对于特定操作系统版本(例如,所有早于JB MR1的版本),使用

可以在中找到信息来源。

有一种方法可以解决此问题。它归结为禁用硬件加速

  • 对于有问题的视图,使用myView.setLayerType(View.LAYER\u TYPE\u软件,null)
  • 对于特定操作系统版本(例如,所有早于JB MR1的版本),使用

在中找到信息源。

没有相关代码-当我尝试在4.0.x设备上恢复后台活动时会发生这种情况。您可以在崩溃中看到,它在尝试绘制ListView滚动拇指时似乎崩溃了。您尝试过我的答案吗?请告诉我它是否对您有帮助。没有相关代码-当我尝试在4.0.x设备上恢复后台活动时,会发生这种情况。您可以在崩溃中看到,它在尝试绘制ListView滚动拇指时似乎崩溃了。您尝试过我的答案吗?请告诉我它是否对您有帮助。通过调用setLayerType(View.LAYER\u TYPE\u软件,null)为我工作;在我自己的视图中,构造函数通过调用setLayerType(View.LAYER\u TYPE\u SOFTWARE,null)为我工作;在我看来