使用位图时的java NullPointerException
在手机上测试我的应用程序时,我遇到了一个内存不足的错误,经过一些研究,我发现这是由于我不恰当地使用位图造成的。最初,我会声明一个位图:
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.image_name);
从日志中,我看到错误源于此。因此,我四处阅读并尝试使用一个额外的参数,选项,例如:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
然后声明位图
image = BitmapFactory.decodeResource(getResources(), R.drawable.image_name, options);
当运行这个程序时,我不会再出现内存不足错误,但是当我试图使用位图时,如果是试图将它们绘制到画布上,或者调用时,我确实会收到一个空指针异常。getWidth()和。getHeight()在他们身上
我很难解决这个问题,如果能提供一些反馈,我将不胜感激
错误日志:
01-27 18:47:42.597: E/AndroidRuntime(15698): java.lang.NullPointerException
01-27 18:47:42.597: E/AndroidRuntime(15698): at 安卓.graphics.Canvas.throwIfCannotDraw(Canvas.java:1083)
01-27 18:47:42.597: E/AndroidRuntime(15698): at 安卓.graphics.Canvas.drawBitmap(Canvas.java:1139)
01-27 18:47:42.597: E/AndroidRuntime(15698): at com.mascal.petele.Game$OurView.drawMenu(Game.java:654)
01-27 18:47:42.597: E/AndroidRuntime(15698): at com.mascal.petele.Looping.run(Looping.java:34)
在比赛中。java:654代码行是:
c.drawBitmap(background, 0, 0, null);
这是位图的第一次使用,彼此使用也是如此
# 1 楼答案
您的背景变量设置为空。也许它无法加载。首先修复该问题,使其指向位图对象,然后您将能够绘制它