我正在为Android制作一款破砖游戏,并尝试更改背景图像。在游戏的第一次运行中,这种方法在100%的时间内有效。

     mBackgroundImage = BitmapFactory.decodeResource
                (gameView.getContext().getResources(),
                R.drawable.planet3);


planet3在res / drawable文件夹中。

如果返回上一个屏幕并开始新游戏,大约90%的时间我会获得NPE。如果我使用的框架随附的资源与“ planet3”位于同一文件夹中,那么奇怪的是,无论是新游戏还是第一个游戏,它都可以100%地工作。

为什么在某些时间而不是其他时间会发生这种情况。我通常会发现它确实起作用时是因为我正在调试它并逐行逐步进行,但是这可能只是巧合。

我目前的代码如下,TheGame是游戏正在运行的当前Thread,我上面粘贴的代码位于该函数的构造函数中,即I.E.每次制作新游戏时,都应该设置背景。您还可以在左侧看到文件结构,以验证文件“ background”是否与“ planet3”位于同一文件夹中:


就错误而言,我没有实际的错误消息,只是说MOOC已停止工作,然后重新启动程序。

最佳答案

如果您使用沉重的图像,可能会发生这种情况,或者请在此处发布所有代码以及异常,以获取更好的分辨率

关于java - Android位图有时返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29091559/

10-08 23:38