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

时间:2015-03-27 04:45:47

标签: android xamarin monogame content-pipeline

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

有问题的图片: PNG which fails to load

我收到通常的内容错误:

  

Microsoft.Xna.Framework.Content.ContentLoadException:无法加载   Sprites \ UI \ InGame \ winner01_black资产作为非内容文件! --->   System.Exception:打开流错误。

游戏中的每一个其他纹理加载都很好,所以我假设我用这种特殊的纹理做了一些傻事,但是当我试图将它缩小时,事情变得非常奇怪。

以下是我的尝试和结果:

1)用我知道可行的PNG覆盖损坏的PNG(验证路径和东西是否有效),通过内容管道运行它,并在游戏中加载它。的 WORKS

2)从Gimp / Paint.NET重新打开破碎的纹理(如果我有一些不好的设置或其他东西),通过内容管道运行它,并将其加载到游戏 BROKEN

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

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

This version of the texture loads fine.

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

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

在这一点上,在我看来,内容管道必须对图像进行某种优化(有人建议它可能将它变成一个腭化查找,因为颜色很少,并且可以解释为什么#4工作)

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

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

1 个答案:

答案 0 :(得分:0)

我最终只是缩小图像以删除大部分空白区域(alpha = 0)并以某种方式为我解决了问题。我怀疑当有很多空格时,内容管道对图像的处理方式不同。