这个让我有点难过!我的项目中有 1 个纹理无法加载。我正在使用 Monogame 3.2 和 XNA 内容管道。当我在 Motorola Droid Razr (Android 4.1.1) 模拟器上运行我的游戏时,这个问题才开始发生。它在 Galaxy S4 (Android 4.4) 模拟器上运行良好。(这是我尝试过的仅有的两个版本)
有问题的图像:
我收到通常的内容错误:
Microsoft.Xna.Framework.Content.ContentLoadException:无法将 Sprites\UI\InGame\winner01_black 资源加载为非内容文件!---> System.Exception:打开流错误。
游戏中的所有其他纹理加载都很好,所以我认为我对这个特殊的纹理做了一些愚蠢的事情,但是当我试图缩小它时,事情变得非常奇怪。
这是我尝试过的方法和结果:
1)用我知道有效的PNG覆盖损坏的PNG(以验证路径和东西是否有效),通过内容管道运行它,并将其加载到游戏中。作品
2) 从 Gimp/Paint.NET 中重新保存损坏的纹理(以防我有一些错误的设置或其他东西),通过内容管道运行它,然后在游戏中加载它BROKEN
3) 在 Gimp 中,将损坏的图像复制并粘贴到一个全新的文件中,保存该新文件,通过内容管道运行它,然后将其加载到游戏中。破碎的
4) 对损坏的图像进行了一些任意更改(在其上画线 - 见下图)重新保存,通过内容管道运行它,并将其加载到游戏中。作品
5) 然后我对损坏的图像进行了一些非常小的更改(添加一个红色像素),通过内容管道运行它,并将其加载到游戏中。破碎的
6) 将损坏的 PNG 重新保存为 TGA,通过内容管道运行它,然后将其加载到游戏中。破碎的
在这一点上,在我看来,内容管道必须对图像进行某种优化(有人建议它可能会将其变成颚化查找,因为颜色太少,并且可以解释为什么 #4 有效)。
我已将 PNG 的两个版本(以及由此产生的 XNB)放在这里,希望有人能告诉我是什么导致一个无法加载而另一个工作!
https://www.dropbox.com/sh/vqegeozqf6hv2uz/AACVoj6sEzFVW-PI6lgwdvzAa?dl=0