2016-08-06 3 views
2

랩톱에서 기본 LibGdx 코드를 컴파일하는 동안 이러한 오류가 발생합니다. 어떻게 든 똑같은 일이 내 PC에서 작동합니다.LibGdx - 기본 코드가 NullPointerException

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); 

답변

1

는 바탕 화면 런처 클래스에이 코드를 넣습니다.

이렇게하면 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); 
    } 
} 

처럼 보일 것입니다.

+0

코드가 내 OpenGL 버전이 너무 오래되었다는 오류를 변경합니다. 그래, 도움이 됐고 아마도 그래픽 드라이버가 도움이 될 것입니다. – MrGrzyboo