带有 JOGL 2.0 的 GLProfile 中的空指针异常

Posted

技术标签:

【中文标题】带有 JOGL 2.0 的 GLProfile 中的空指针异常【英文标题】:Null Pointer Exception in GLProfile with JOGL 2.0 【发布时间】:2011-10-18 08:14:51 【问题描述】:

JOGL 2.0 向 GLCapabilities 添加了一个 GLProfile 参数。无论出于何种原因,使用这个简单的代码:

import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;

public class Test 
    public static void main(String[] args)
        GLCanvas canvas = new GLCanvas(new GLCapabilities(GLProfile.getDefault()));
    

我收到以下错误:

Exception in thread "main" java.lang.NullPointerException
    at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:1561)
    at javax.media.opengl.GLProfile.get(GLProfile.java:589)
    at javax.media.opengl.GLProfile.getDefault(GLProfile.java:421)
    at javax.media.opengl.GLProfile.getDefault(GLProfile.java:429)
    at com.setcorp.mosey.Test.main(Test.java:7)

所以我什至无法创建用于我的 JOGL 2.0 应用程序的 GLCanvas。

代入:

GLCanvas canvas = new GLCanvas(new GLCapabilities(GLProfile.get(GLProfile.GL2)));

GLCanvas canvas = new GLCanvas(new GLCapabilities(null));

第 7 行给了我同样的错误。

我已将构建路径设置为包括 newt.all.jar、jogl.all.jar、nativewindow.all.jar 和gluegen-rt.jar。我从它们的原生 jar 中解压缩了 dll,并在 eclipse 中分别设置了原生库位置。我正在使用 jogl-2.0-b409-20110717-windows-i586 构建并运行 W7、Intel Core 2 Duo T8100 2.10GHz、2GB RAM 和 Nvidia Quadro NVS 140M。

有适合​​我的早期版本吗?

【问题讨论】:

【参考方案1】:

您的代码看起来不错。只需在构建路径中仅使用这些 jar 即可尝试(见下文)。尝试时避免包含其他罐子。

jogl.all.jar jogl-all-natives-windows-i586.jar gluegen-rt.jar gluegen-rt-natives-windows-i586.jar

【讨论】:

以上是关于带有 JOGL 2.0 的 GLProfile 中的空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

JOGL:在指定位置绘制球体会导致问题

将 JOGL 纹理转换为 BufferedImage

J3D在UOS+KIRIN崩溃3:GLProfile正确初始化及解决办法

设置和获取光标位置?带有 OpenGL 的 JAVA

JOGL 中顶点缓冲对象的问题

glGetUniformLocation() 不在 JOGL 中?