我有一个问题,我似乎无法解决!我正在开发一个简单的安卓游戏,几乎实现了一切,但后来决定添加一些障碍(游戏是一个月球着陆器风格的游戏)。Android空指针onDraw位图图片
基本上,我创建了一个Asteroid类,只是试图在屏幕上绘制它们。当加载游戏的小行星被吸引,和一切工作正常,但如果您按下home键或关闭电源,然后重新启动游戏,我收到了NPE:
03-04 21:33:21.243: E/AndroidRuntime(10748): FATAL EXCEPTION: Thread-680
03-04 21:33:21.243: E/AndroidRuntime(10748): java.lang.NullPointerException
03-04 21:33:21.243: E/AndroidRuntime(10748): at com.swiss196.LunarLander.GameThread.doDraw(GameThread.java:421)
03-04 21:33:21.243: E/AndroidRuntime(10748): at com.swiss196.LunarLander.GameThread.run(GameThread.java:386)
并将其指向下面的代码:
canvas.drawBitmap(test2.getBitmap(), 120, 120, null);
这将建议帆布或getBitmap返回的test2对象/图像为null,但在此之前,我检查画布不为空。并在位图内,我检查图像不为零:
public Bitmap getBitmap() {
if(asteroidImage == null)
asteroidImage = BitmapFactory.decodeResource(mGameView.getContext().getResources(),
R.drawable.asteroid);
return asteroidImage;
}
有什么想法?
如果decodeResource返回null(它会出错),getBitmap函数返回null。检查可能性。 – 2013-03-04 21:40:58