Android Canvas drawcolor 抛出空指针异常
Posted
技术标签:
【中文标题】Android Canvas drawcolor 抛出空指针异常【英文标题】:Android Canvas drawcolor throws Null pointer exception 【发布时间】: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 上不可见。
【参考方案1】:
SurfaceHolder.lockCanvas() 允许返回 null(因为您的线程与表面的生命周期不完全相同)。我敢打赌你没有在你的线程函数中处理这种可能性。
【讨论】:
以上是关于Android Canvas drawcolor 抛出空指针异常的主要内容,如果未能解决你的问题,请参考以下文章