Libgdx AssetManager在恢复时不加载资源

时间:2015-08-17 13:03:11

标签: java android libgdx scene2d

我正在使用Libgdx assetmanager加载UI资源。它完全正常,直到我重新启动应用程序(Android)。 以下是发生的事情:

  1. 我开始游戏:运行良好
  2. 我使用Gdx.app.exit()(无错误)
  3. 关闭应用程序
  4. 现在,当我按下应用程序图标打开它时:崩溃了!
  5. 错误:com.badlogic.gdx.utils.GdxRuntimeException: Asset not loaded: data/GUI/packed/gui.atlas

    我试过finishloading()没有运气! 我尝试永远使用finishloadingasset("data/GUI/packed/gui.atlas")这个块! 在退出之前添加assetmanager.dispose()也清除。没有运气!

    崩溃之后,如果我再次尝试打开它就可以正常工作了!

    请指教! 感谢

1 个答案:

答案 0 :(得分:2)

在Android中关闭活动不会自动清除您的静态引用。不要对任何与OpenGL相关的对象(如AssetManagers,Textures,ShaderPrograms,SpriteBatches等)保持任何静态引用,否则您可能会在不知道如何(或需要)重新加载游戏的情况下重新开启游戏。

通过清除Activity的onCreate方法中的静态引用,可能会有一些方法,但更安全/更容易避免静态引用。