【问题标题】:Android Canvas drawcolor throws Null pointer exceptionAndroid Canvas drawcolor 抛出空指针异常
【发布时间】:2013-03-27 17:58:33
【问题描述】:

开发一款安卓小游戏(支持2.1到4.2),下面的代码经常会抛出java.lang.NullPointerException异常

canvas.drawColor((0xFFAAAAAA);

public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback {

public void render(Canvas canvas) {             

        canvas.drawColor(0xFFAAAAAA);   

        droid.draw(canvas);

    }
}

这是堆栈跟踪

java.lang.NullPointerException
at com.rdx.play.MainGamePanel.render(MainGamePanel.java:186)
at com.rdx.play.MainThread.run(MainThread.java:54)

异常不一致,是什么原因造成的?

非常感谢。

【问题讨论】:

  • drawColor(( 是错字吧?此外,既然您知道canvas 有时是null,为什么不调试代码并查看对render 的哪个调用发送null 作为参数。
  • 更正了错字,崩溃在 4.0 上可见,但在 2.3 和 2.2 上不可见。

标签: android nullpointerexception render android-canvas


【解决方案1】:

SurfaceHolder.lockCanvas() 允许返回 null(因为您的线程与表面的生命周期不完全相同)。我敢打赌你没有在你的线程函数中处理这种可能性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 2014-06-12
    • 1970-01-01
    • 2020-11-22
    • 2020-08-10
    • 2013-03-21
    • 1970-01-01
    相关资源
    最近更新 更多