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 包,参见
这是已知的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"
在DesktopLauncher
class中,更改
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
。
所以,我刚刚为桌面创建了 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 包,参见
这是已知的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"
在DesktopLauncher
class中,更改
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
。