当我尝试使用插件Activator的GLProfile.initSingleton(false);
方法中的start
初始化JOGL时,我得到以下异常:
java.lang.UnsatisfiedLinkError: jogamp.nativewindow.windows.GDI.initIDs0()Z
我使用OSGi Manifest条目Bundle-NativeCode
包含所需的本机库。
我将库(JOGL,Gluegen和Nativewindow)打包成单独的插件,并为Nativewindow插件设置了以下Manifest(显然发生了错误):
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Nativewindow
Bundle-SymbolicName: lib.nativewindow;singleton:=true
Bundle-Version: 2.0.0.rc2
Bundle-ClassPath: nativewindow.all.jar
Export-Package: com.jogamp.nativewindow,
javax.media.nativewindow,
javax.media.nativewindow.awt,
javax.media.nativewindow.egl,
javax.media.nativewindow.macosx,
javax.media.nativewindow.util,
javax.media.nativewindow.windows,
javax.media.nativewindow.x11,
jogamp.nativewindow,
jogamp.nativewindow.awt,
jogamp.nativewindow.jawt,
jogamp.nativewindow.jawt.macosx,
jogamp.nativewindow.jawt.windows,
jogamp.nativewindow.jawt.x11,
jogamp.nativewindow.swt,
jogamp.nativewindow.windows,
jogamp.nativewindow.x11
Require-Bundle: lib.gluegen;bundle-version="2.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Bundle-NativeCode: native/windows/i586/nativewindow_awt.dll; native/windows/i586/ nativewindow_win32.dll; osname=win32; processor=x86,
native/windows/amd64/nativewindow_awt.dll; native/windows/amd64/nativewindow_win32.dll; osname=win32; processor=x86-64,
native/macosx/libnativewindow_awt.jnilib; osname=maxosx; processor=x86,
native/macosx/libnativewindow_awt.jnilib; osname=maxosx; processor=ppc,
native/linux/i586/libnativewindow_awt.so; native/linux/i586/libnativewindow_x11.so; osname=linux; processor=x86,
native/linux/amd64/libnativewindow_awt.so; native/linux/amd64/libnativewindow_x11.so; osname=linux; processor=x86-64
我仔细检查了本机库路径,它们确实指向了正确的文件。
现在,我做错了什么?