我在笔记本电脑上编译默认的LibGdx代码时遇到这些错误。不知何故,完全相同的东西在我的电脑上运行。
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:321)
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:215)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:142)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
使用gdx安装应用程序,仅为桌面生成项目。我添加了一个配置,以便我可以运行它。在编译期间,我得到了这个错误。我没有更改默认代码中的任何内容。为什么会这样?
public class DesktopLauncher {
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
new LwjglApplication(new MyGdxGame(), config);
}
}
public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
@Override
public void create () {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(img, 0, 0);
batch.end();
}
@Override
public void dispose () {
batch.dispose();
img.dispose();
}
}
发生异常的LwjglGraphics行是:
throw new GdxRuntimeException("OpenGL is not supported by the video driver: " + glVersion.getDebugVersionString(), ex3);
答案 0 :(得分:2)
将此代码放入桌面启动器类。
这将允许libgdx以软件openGL模式运行。
System.setProperty("org.lwjgl.opengl.Display.allowSoftwareOpenGL", "true");
您的代码应如下所示
public class Main {
public static void main(String[] args) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
System.setProperty("org.lwjgl.opengl.Display.allowSoftwareOpenGL", "true");
config.title = "Mygame";
config.width = 1920;
config.height = 1080;
new LwjglApplication(new MyGame(), config);
}
}
同时更新图形驱动程序。