在Ubuntu上启动libgdx桌面项目失败

5

我刚刚创建了一个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$1.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 Studio中启动,能正常工作。

3个回答

9

6

这是一个已知的问题,尝试安装xorg-xrandr。

此外,我通过安装bumblebee来解决了这个问题。


1
这个错误在我将默认的lwjgl后端(该后端仍然被用于生成LibGDX项目的工具)更换为lwjgl3后端后消失了。以下是在使用gdx-setup.jar新生成项目时如何更改(doc):

build.gradle中进行更改:

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

to

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

DesktopLauncher 类中,更改

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

to

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接