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

问题描述 投票:0回答:1

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

有关图片:“无法加载的PNG”

我收到通常的内容错误:

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

“此版本的纹理加载良好。”

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

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

[在这一点上,我似乎认为内容流水线必须对图像进行某种优化(有人建议将其转换成图像化查找,因为颜色太少了,可以解释为什么#4起作用了)。

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

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

android xamarin monogame content-pipeline
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.