有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用位图时的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) 个答案

  1. # 1 楼答案

    您的背景变量设置为。也许它无法加载。首先修复该问题,使其指向位图对象,然后您将能够绘制它