所以,我刚刚为桌面创建了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
我无法弄清楚发生了什么。 Project为Android创建并在android studio中正常运行。
答案 0 :(得分:7)
您需要安装xorg-xrandr软件包,请参阅
答案 1 :(得分:5)
答案 2 :(得分:1)
当我从默认的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"
在DesktopLauncher
类中,更改
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;
因此基本上只需在这两个位置的3
之后添加lwjgl
。