2017-06-04 24 views
0

我有麻煩的工作出來Jzy3d依賴於我的Android Studio項目庫時。堆棧跟蹤導致錯誤是:Android的工作室給UnsatisfiedLinkError加載,我已經包含在項目

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) 

在抓取通過堆棧跟蹤,我發現下面的線Platform.run:249

GlueJNILibLoader.loadLibrary("gluegen-rt", false, Platform.class.getClassLoader()); 

所以我最好的猜測是,它試圖加載我的gluegen-rt.jar,但出於某種原因無法找到它。

I've included gluegen-rt in my libs directory

我也嘗試添加libgluegen-rt.so爲src /主/ jniLibs和改變了我的.grade包括

compile fileTree(dir: 'libs', include: ['*.jar','*.so']) 

所以基本上我的問題是,什麼是錯誤?它是否無法加載我的gluegen-rt.jar,或者它無法加載libgluegen-rt.so?這個問題是由於我錯過了一個不同的圖書館嗎?

啓動該問題是調用圖表構造從Jzy3d libary

Chart chart = new Chart(Quality.Advanced); 

唐氏方法的行中的代碼調用下面的行執行

GLProfile.isAvailable("GL2") 

是代碼行在gluegen-rt中使用的是

protected static synchronized boolean loadLibrary(String var0, boolean var1, ClassLoader var2) { 
    return loaderAction != null?loaderAction.loadLibrary(var0, var1, var2):false; 
} 
+0

您能否在您使用該庫的某個功能的地方提供代碼? –

+0

@rajanya DHAR我已經包括從庫 –

回答

0

按照Android Studio: Add jar as a library?

你缺少下列步驟操作:

  1. 把Jzy3d水罐裏的libs文件夾。
  2. 右鍵單擊它並點擊 '添加爲庫'
  3. 添加以下行依賴:從

    compile 'org.jogamp.gluegen:gluegen-rt-android:2.1.3' 
    

您可以刪除*的.so:

compile fileTree(dir: 'libs', include: ['*.jar','*.so']) 
+0

使用時左擊我沒有看到一個「添加爲庫」選項的功能。另外,當添加第三點中提到的行時,我得到一個DuplicateFileException。我已經有一個線路編譯文件('libs/gluegen-rt.jar') –

+0

在這種情況下,請添加: 編譯文件('libs/ .jar').. [請用精確的jar文件名替換] 請如果您已經包含了gluegen-rt.jar,則忽略第三行。 –

相關問題