Gradle 一段时间后,libgdx无法加载纹理

Gradle 一段时间后,libgdx无法加载纹理,gradle,libgdx,textures,sprite,game-physics,Gradle,Libgdx,Textures,Sprite,Game Physics,因此,我正在制作一款僵尸射击游戏,效果很好,但在运行了一段时间后,我遇到了一个例外: 线程“LWJGL应用程序”com.badlogic.gdx.utils.GdxRuntimeException中的异常: 无法加载文件:1zom3.png 在com.badlogic.gdx.graphics.Pixmap.(Pixmap.java:140) 位于com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java

因此,我正在制作一款僵尸射击游戏,效果很好,但在运行了一段时间后,我遇到了一个例外:

线程“LWJGL应用程序”com.badlogic.gdx.utils.GdxRuntimeException中的异常: 无法加载文件:1zom3.png 在com.badlogic.gdx.graphics.Pixmap.(Pixmap.java:140) 位于com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java:98) 位于com.badlogic.gdx.graphics.Texture.(Texture.java:100) 位于com.badlogic.gdx.graphics.Texture.(Texture.java:92) 位于com.lastride.game.Entity.changeState(Entity.java:51) 在com.lastride.game.敌军.seek(敌方java:39) 更新(LastRideGame.java:149) 位于com.lastride.game.LastRideGame.render(LastRideGame.java:229) 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:215) 位于com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120) 原因:java.io.IOException:加载pixmap时出错: 位于com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.(Gdx2DPixmap.java:57) 位于com.badlogic.gdx.graphics.Pixmap.(Pixmap.java:138) ... 9更多 我知道一个事实,图像在工作时就在那里,但似乎在运行了一段时间后崩溃了

这是它崩溃的方法:

public void changeState(inti)
{
//更改状态并同时更改与给定状态关联的图像
状态=i;
sprite=newsprite(新纹理(Gdx.files.internal(name+i+suff));//此处崩溃
边界=(sprite.getBoundingRectangle());
if(sprite.getTexture().getTextureData().isPrepared()==false)
{
sprite.getTexture().getTextureData().prepare();
}
playerMap=sprite.getTexture().getTextureData().consumePixmap();
}

正如@Tenfour04所指出的,这可能是内存不足的问题

而不是这样做:

sprite=newsprite(新纹理(Gdx.files.internal(name+i+suff));
创建一个全局(和/或可能的
静态
和/或可能的
最终
纹理
对象,在游戏开始时只加载一次,并重复使用

大概是这样的:


公共静态纹理myTexture_1//您是否正在对已处理的旧纹理调用
dispose
?如果不是,这可能是一个内存不足的错误,因为你的巨大内存泄漏。如果你发布更多的堆栈跟踪,这将非常有帮助。我按照你说的做了,发布了更多的堆栈跟踪,在我需要sprite(sprite=新sprite)之前,我尝试调用sprite.getTexture.dispoose,但这给我留下了黑色图像,没有纹理