我有一個問題,我似乎無法解決!我正在開發一個簡單的安卓遊戲,幾乎實現了一切,但後來決定添加一些障礙(遊戲是一個月球着陸器風格的遊戲)。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