我在为Android Studio项目制作Jzy3d的依赖项时遇到了麻烦。导致错误的堆栈跟踪是:
sizeof(void*) != sizeof(uintptr_t)
在爬行堆栈跟踪时,我在Platform.run:249
中找到了以下行at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:454)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:59)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:90)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:328)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:390)
at com.jogamp.common.os.Platform$2.run(Platform.java:249)
at java.security.AccessController.doPrivileged(AccessController.java:45)
at com.jogamp.common.os.Platform.loadGlueGenRTImpl(Platform.java:231)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:183)
at com.jogamp.common.os.Platform.initSingleton(Platform.java:258)
at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:99)
at javax.media.opengl.GLProfile.isAvailable(GLProfile.java:284)
at org.jzy3d.chart.Settings.<init>(Settings.java:19)
at org.jzy3d.chart.Settings.getInstance(Settings.java:48)
at org.jzy3d.chart.Chart.<init>(Chart.java:60)
at org.jzy3d.chart.Chart.<init>(Chart.java:48)
所以我最好的猜测是它正在尝试加载我的gluegen-rt.jar,但由于某种原因无法找到它。
I've included gluegen-rt in my libs directory
我还尝试将libgluegen-rt.so添加到src / main / jniLibs并将我的.grade更改为include
GlueJNILibLoader.loadLibrary("gluegen-rt", false, Platform.class.getClassLoader());
所以基本上我的问题是错误在哪里?是否无法加载我的gluegen-rt.jar,或者它无法加载libgluegen-rt.so?问题是由于我错过了一个不同的库吗?
启动问题的代码是从Jzy3d库中调用图表构造函数
compile fileTree(dir: 'libs', include: ['*.jar','*.so'])
在方法调用行中,执行以下行
Chart chart = new Chart(Quality.Advanced);
gluegen-rt中使用的代码行是
GLProfile.isAvailable("GL2")
答案 0 :(得分:0)
按照Android Studio: Add jar as a library?
中的说明操作您缺少以下步骤:
在依赖关系中添加以下行:
compile 'org.jogamp.gluegen:gluegen-rt-android:2.1.3'
您可以从
中删除* .socompile fileTree(dir: 'libs', include: ['*.jar','*.so'])