Java 尝试在canvas textureview android上绘制时出现空指针异常?

Java 尝试在canvas textureview android上绘制时出现空指针异常?,java,android,textureview,Java,Android,Textureview,我正在尝试用Android的画布在TextureView上绘制。我是在线程中执行的,但是由于某种原因,当我试图运行我的程序时,我得到了一个空指针异常。我已经在surfaceAvailable()回调中实现了我的线程,但仍然无法绘制。我可能做错了什么 这就是我迄今为止所尝试的: 这是我的stacktrace: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Canvas.

我正在尝试用Android的画布在TextureView上绘制。我是在线程中执行的,但是由于某种原因,当我试图运行我的程序时,我得到了一个空指针异常。我已经在surfaceAvailable()回调中实现了我的线程,但仍然无法绘制。我可能做错了什么

这就是我迄今为止所尝试的:

这是我的stacktrace:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Canvas.drawColor(int, android.graphics.PorterDuff$Mode)' on a null object reference

我认为问题在于:

final Canvas canvas = mSurface.lockCanvas(null);
请看一下官方文件:

锁帆布

公共抽象画布()

开始编辑曲面中的像素。返回的画布可用于绘制到曲面的位图中。如果尚未创建曲面或无法编辑曲面,则返回null。通常需要实现Callback.surfaceCreated,以确定曲面何时可用

您可能试图在曲面创建之前在其上绘制。在这种情况下,必须确保仅在曲面准备就绪后调用lockCanvas()(侦听曲面创建)。此外,在您的情况下,应该使用不带参数的lockCanvas(),如下所示:

final Canvas canvas = mSurface.lockCanvas();