libgdx 无法在 ubuntu 上启动桌面项目

libgdx can't start desktop project on ubuntu

所以,我刚刚为桌面创建了 libgdx 项目并将其导入 (gradle) 到 eclipse。当我启动它时弹出此错误:

Exception in thread "LWJGL Application" java.lang.ExceptionInInitializerError
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:446)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.run(LwjglApplication.java:118)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:954)
at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738)
at org.lwjgl.opengl.Display.<clinit>(Display.java:138)
... 2 more
AL lib: (EE) alc_cleanup: 1 device not closed

我不知道发生了什么。为 android 创建并在 android 工作室正常运行的项目。

您需要安装 xorg-xrandr 包,参见

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

这是已知的issue,尝试安装xorg-xrandr。

此外,我通过安装 bumblebee.

解决了这个问题

在我从默认的 lwjgl 后端(由于某种原因仍然在工具中用于生成 LibGDX 项目)切换到 lwjgl3 后端后,这个错误对我来说消失了。这就是使用 gdx-setup.jar (doc):

新生成的项目的处理方法

build.gradle变化

compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"

compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"

DesktopLauncherclass中,更改

LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
new LwjglApplication(new Game(), config);

Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
new Lwjgl3Application(new Game(), config);

并将导入修改为

import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;

所以基本上只需在这两个地方的 lwjgl 之后添加 3