簡體   English   中英

嘗試在畫布紋理視圖 android 上繪制時出現空指針異常?

[英]Getting a null pointer exception while trying to draw on canvas textureview android?

我正在嘗試在 Android 中使用畫布在 TextureView 上進行繪制。 .我在一個線程中執行此操作,但出於某種原因,當我嘗試運行我的程序時,我收到了一個 我已經在 surfaceAvailable() 回調中實現了我的線程,但我仍然無法繪制。 我可能做錯了什么?

這是我到目前為止嘗試過的:

這是我的堆棧跟蹤:

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);

看一下官方文檔:

鎖畫布

公共抽象畫布 lockCanvas()

開始編輯表面中的像素。 返回的 Canvas 可用於繪制到表面的位圖。 如果表面尚未創建或無法編輯,則返回 null 您通常需要實現 Callback.surfaceCreated 來確定 Surface 何時可供使用。

您可能試圖在創建表面之前在表面上繪圖。 在這種情況下,您必須確保 lockCanvas() 僅在表面准備好后才被調用(監聽表面創建)。 此外,在您的情況下,您應該使用不帶參數的 lockCanvas(),如下所示:

final Canvas canvas = mSurface.lockCanvas();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM