Libgdx android应用程序本机(?)崩溃

Libgdx android应用程序本机(?)崩溃,libgdx,Libgdx,我有一个奇怪的问题。我从上个星期开始每晚都用。如果我没记错的话,是从23/3开始的。 结果是我运行了一个Libgdx活动,它运行得很好。然后我完成应用程序。我再次启动libgdx活动,它崩溃了。。。这种情况经常发生,但并非总是如此。 在调试模式下,它根本不会发生。有什么想法吗?它不打印任何崩溃日志,但我认为它与此日志有关: 我的代码现在没有任何特殊功能。它只是在舞台上打印FPS 我认为可能连接的日志中有一个错误:EGL error:EGL\u BAD\u CONTEXT。 这是在上一个日志之前打

我有一个奇怪的问题。我从上个星期开始每晚都用。如果我没记错的话,是从23/3开始的。 结果是我运行了一个Libgdx活动,它运行得很好。然后我完成应用程序。我再次启动libgdx活动,它崩溃了。。。这种情况经常发生,但并非总是如此。 在调试模式下,它根本不会发生。有什么想法吗?它不打印任何崩溃日志,但我认为它与此日志有关:

我的代码现在没有任何特殊功能。它只是在舞台上打印FPS

我认为可能连接的日志中有一个错误:EGL error:EGL\u BAD\u CONTEXT。 这是在上一个日志之前打印的

谢谢。

完成应用程序”是什么意思?暂停(按回家键)还是毁灭

我想知道这是否与LibGDX试图保留EGL上下文有关。Android的默认设置是不保留它,但如果您使用的是SDK>=11,则LibGDX会尝试启用它。您可以尝试在AndroidApplication子类中禁用保存,方法如下:

View view = ((AndroidGraphics)Gdx.graphics).getView();
try {
    Method method = null;
    for (Method m : view.getClass().getMethods()) {
        if (m.getName().equals("setPreserveEGLContextOnPause")) {
            method = m;
            break;
        }
    }
    if (method != null) {
        method.invoke((GLSurfaceView20)view, false);
    }
} catch (Exception e) {
}

我发现了问题。在我从清单中的应用程序标记中删除hardwareAccelaration=“true”后,问题消失了。我不知道为什么这很重要,因为我的设备是4.0.4,这意味着它在默认情况下是启用的。

您是否对所有内容都调用dispose?是的。实际上,这只是一个需要处理的舞台。你应该拥有更多的一次性物品,而不仅仅是一个舞台。Mali是GPU系统的一部分,当您试图在GPU系统中执行某种类型的锁定操作时,您正在崩溃。释放所有东西-看,我没有任何其他东西要处理,因为我只是在使用标签的阶段中显示我的fps。就是这样。标签是文本,表示皮肤或位图字体。