我正在为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/