android – LibGDX无法加载特定图像

前端之家收集整理的这篇文章主要介绍了android – LibGDX无法加载特定图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我过去已成功加载了所有图像,并且我使用的是OpenGL ES 2.0,因此图像不需要是2的幂(我有几个成功加载但不是).

有问题的代码是这样的:

Line 96: splashSheet = new Texture(Gdx.files.internal("test.png"));

这是我的错误消息:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
    at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
    at com.badlogic.gdx.graphics.Texture.load(Texture.java:175)
    at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
    at com.panini.game.GameScreen.show(GameScreen.java:96)
    at com.badlogic.gdx.Game.setScreen(Game.java:59)
    at com.panini.game.Splash.render(Splash.java:29)
    at com.badlogic.gdx.Game.render(Game.java:46)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108)
Caused by: java.io.IOException: couldn't load pixmap
    at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57)
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138)
    ... 11 more

这就是使这成为一个有趣问题的原因.我可以加载this文件,但我无法加载this文件.前者基本上只是我想要使用的截图.
我提供的第二张图片(不起作用)是原版.它被称为splashSprites.png,但我已经尝试将其重命名为test.png并正确引用它但它仍然不起作用,所以我知道这绝对不是命名问题或任何事情.如果我将这两个文件分别放在名为test1.png和test2.png的assets或bin目录中,那么如果我要求加载test1.png则代码可以工作,但如果我要求加载test2.png则不行,所以这不是我我把文件放在错误的地方.这两个似乎是最有可能的候选人,但我已经排除了他们.

我尝试了其他的东西,比如重新导出第一张图片等等,但它从来没有用过(做了什么工作就是截图,这就是为什么我在这里).我的猜测是它可能与其中一个图像中的alpha有关(因为这实际上是唯一不同的两个 – 一个是alpha而另一个没有)但是这不太可能因为我能够加载其他一些有alpha的纹理.我真的很难过.

提前致谢.

解决方法

我找到了答案.显然LibGDX不支持16位png(这是正确的吗?)因为在使用OS X上的Preview将我的spritesheet转换为8位深度后,我发现问题消失了.

感谢P.T.有关升级LibGDX的建议,因为我收到以下错误消息:

Caused by: java.io.IOException: couldn't load pixmap 8bit only

猜你在找的Android相关文章