java - LibGdx - 默认代码的 NullPointerException

标签 java nullpointerexception compilation libgdx

我在笔记本电脑上编译默认的 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);

最佳答案

将此代码放入桌面启动器类。

这将允许 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);
   }
}

同时更新您的图形驱动程序。

关于java - LibGdx - 默认代码的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38806017/

相关文章:

java - 如何对自定义整数列表进行排序? Collections.sort()?

java - 搜索前将 ParseQuery 数组转为小写

java - 从 Singleton 触发 GWT SimpleEventBus 事件时出现 Nullpointer [Umbrella]Exception

c - 为什么 gcc 在 cmd 行 (-D) 中重新定义 malloc() 时不检查函数的隐式声明?

java - 将单击监听器添加到 Drag-Sort-Listview 库

java - 有没有一种优雅的方法来打开包裹在 2 个嵌套的 Optionals 中的对象?

java - 什么是NullPointerException,我该如何解决?

hadoop - hadoop映射器程序中的空指针异常

html - 从模板编译 HTML 的程序

Excel VBA 编译错误