Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LibGDX:AssetsManager GdxRuntimeException在处理时发生异常_Java_Libgdx - Fatal编程技术网

Java LibGDX:AssetsManager GdxRuntimeException在处理时发生异常

Java LibGDX:AssetsManager GdxRuntimeException在处理时发生异常,java,libgdx,Java,Libgdx,您好,我对libGDX中的AssetsManager有问题 我使用AssetManager加载TTF和Skin,并将TTF添加到Skin。然后,当Idispose时,AssetsManager抛出异常 我知道问题应该是skin和assset管理器处理相同的pixmap。但有没有办法防止这种情况发生 Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Pixmap already d

您好,我对libGDX中的
AssetsManager
有问题

我使用
AssetManager
加载
TTF
Skin
,并将
TTF
添加到
Skin
。然后,当Idispose时,
AssetsManager
抛出异常

我知道问题应该是skin和assset管理器处理相同的pixmap。但有没有办法防止这种情况发生

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Pixmap already disposed!
at com.badlogic.gdx.graphics.Pixmap.dispose(Pixmap.java:315)
at com.badlogic.gdx.graphics.g2d.PixmapPacker$Page$1.dispose(PixmapPacker.java:384)
代码:

编辑:我解决了。但我不喜欢这个解决方案

public void dispose() {
    skin.remove(Const.TTF_ARIAL_SMALL, BitmapFont.class);
    manager.dispose();
}

一旦不再需要该资产,您希望释放它以避免内存泄漏。使用:

manager.unload( yourAsset ) ;
如果您想释放所有资产,无论是否 立即排队或加载,而不是逐个执行:

manager.clear() ;
但是,通过使用clear()方法,AssetManager仍然处于活动状态,最后:

manager.dispose
manager.dispose