在 Monogame 中无法在 Android 4.1.1 上加载图像

Failing to Load Image on Android 4.1.1 in Monogame

这个让我有点难过!我的项目中有 1 个纹理无法加载。我正在使用 Monogame 3.2 和 XNA 内容管道。当我在摩托罗拉 Droid Razr (Android 4.1.1) 模拟器上 运行 我的游戏时,这个问题才开始发生。它在 Galaxy S4 (Android 4.4) 模拟器上运行良好。 (这是我尝试过的仅有的两个版本)

相关图片:

我收到常见的内容错误:

Microsoft.Xna.Framework.Content.ContentLoadException: Could not load Sprites\UI\InGame\winner01_black asset as a non-content file! ---> System.Exception: Opening stream error.

游戏中的所有其他纹理都可以正常加载,所以我假设我对这个特定纹理做了一些愚蠢的事情,但当我试图缩小它的范围时,事情变得非常奇怪。

这是我尝试过的方法和结果:

1) 用我知道有效的 PNG 覆盖损坏的 PNG(以验证路径和内容是否有效),运行 通过内容管道将其加载到游戏中。 作品

2) 从 Gimp/Paint.NET 中重新保存损坏的纹理(以防我有一些错误的设置或其他东西),运行 通过内容管道,并在游戏中加载它 破碎

3) 在 Gimp 中,将损坏的图像复制并粘贴到一个全新的文件中,保存该新文件,运行 通过内容管道将其加载到游戏中。 已损坏

4) 对损坏的图像进行了一些任意更改(在其上绘制线条 - 见下图)重新保存,运行 通过内容管道,并将其加载到游戏中。 作品

5) 然后我对损坏的图像做了一些非常小的更改(添加一个红色像素),运行 通过内容管道将其加载到游戏中。 已损坏

6) 将损坏的 PNG 重新保存为 TGA,运行 通过内容管道,并将其加载到游戏中。 已损坏

此时,在我看来,内容管道必须对图像进行某种优化(有人建议它可能将其变成一个颚式查找,因为颜色太少了,可以解释为什么 #4工作)。

我已将两个版本的 PNG(以及由此产生的 XNB)放在这里,希望有人能告诉我什么会导致一个无法加载而另一个可以正常工作!

https://www.dropbox.com/sh/vqegeozqf6hv2uz/AACVoj6sEzFVW-PI6lgwdvzAa?dl=0

我最终只是缩小了图像以移除大部分空白区域(其中 alpha = 0),这以某种方式解决了我的问题。我怀疑当有很多 空 space.

时,内容管道对图像的处理方式不同