【问题标题】:Libgdx Game crashes when using Box2d World使用 Box2d World 时 Libgdx 游戏崩溃
【发布时间】:2018-03-16 15:39:41
【问题描述】:

我创建了一个在桌面模式下运行良好的 libgdx 游戏,然后我尝试让它在 android 平台上运行。游戏进入菜单屏幕没有任何问题,但是当我点击播放按钮时,游戏关闭“不幸的是,mygame 停止工作”。

我有一个加载屏幕,当它加载完资产后,它会进入菜单屏幕:

if(assetManager.update()){
            game.setScreen(new MenuScreen(game, assetManager));
        }

然后在我的菜单屏幕上,我有一个播放按钮,点击它会进入游戏屏幕:

ChangeListener listener = new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {

                //play button
                if(actor.equals(playBtn)) {
                    menuMusic.stop();
                    game.setScreen(new GameScreen(game, assetManager, settingsPrefs));
                }
           }
     }

在桌面模式下它可以正常工作,但在 Android 上,一旦我点击播放按钮,我就会收到这些错误(不是完整的日志):

    E/AndroidRuntime: FATAL EXCEPTION: GLThread 4474
java.lang.NoClassDefFoundError: com.myname.mygame.worlds.MyContactListener
E/AndroidGraphics: waiting for pause synchronization took too long; assuming deadlock and killing

错误日志说问题出在 box2d 世界并且它是联系人监听器,但对我来说一切都很好。我认为是ParticleEffect 我有很多,我没有正确加载它们我只是使用了Gdx.files.internal()。如何在 AssetManager 上加载 Libgdx ParticleEffect?

有没有办法让应用程序不假设死锁?使应用程序不会关闭

更新(我找到了导致错误的原因)

所以我尝试更改我的代码,因为我教我编写游戏的方式不是很好,并且在 Android 平台上仍然存在同样的问题。游戏正常运行并进入菜单屏幕,但是当您单击播放按钮时它会崩溃。所以我所做的是在菜单屏幕中添加了一个 Box2d 世界

world = new World(0f, -10f);

然后我在尝试切换到游戏画面时遇到了同样的错误

FATAL EXCEPTION: GLThread 8739
        Process: com.myname.mygame, PID: 12794
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/badlogic/gdx/physics/box2d/World;

一旦我将 box2d world 添加到类中,我就得到了错误,问题出在 World 类上,那么我如何知道包含该类的包是否已正确安装?还是有其他解决方案?

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    正如文档所说: https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/physics/box2d/World.html,

    世界只有这个构造函数

    World(Vector2 gravity, boolean doSleep)

    那么你怎么可能以这种方式创建一个 World 对象呢?

    此外,请检查此答案:

    http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=22311

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多