我編譯this library使用NDK到.so中。我可以用System.LoadLibary()成功加載它,但是當我嘗試庫的示例代碼時,它會拋出一個UnsatisfiedLinkError。我檢查了庫的源代碼,它確實具有我使用的函數以及相同的參數(JNIEnv和jobject除外)以及相同的返回值。另外,圖書館的創建者當然會分享工作示例代碼。那麼我做錯了什麼?我從頁面複製了確切的代碼,並相應地更改了變量名稱。使用本機庫時的UnsatisfiedLinkError
1
A
回答
0
沒有更多的細節,很難說。查看了該網站上的圖書館之後,可能會以不同的方式命名您的班級。您需要致電您的Java類Giffle
,它必須位於包org.jiggawatt.giffle
中。這不是一個命名約定,你會意外;-)
package org.jiggawatt.giffle;
public class Giffle {
static {
System.loadLibrary("gifflen");
}
public native int Init(String gifName, int w, int h,
int numColors, int quality,
int frameDelay);
public native void Close();
public native int AddFrame(int[] inArray);
}
要使用它,你要麼做在Giffle
類的叫聲,或可能是一個更清潔的方式是使用一個實例偶然發現:
Giffle giffle = new Giffle();
giffle.Init(...);
giffle.AddFrame(...);
giffle.Close();
似乎有點奇怪,Java部分不在zip中,尤其是因爲類名被硬編碼爲C符號。也許編寫它的人在Java部分有一大堆額外的代碼,他不希望任何人看到。
據我所知,C和C++代碼是完整的。你根本不需要修改它。本地方法的實現在gifflen.cpp中,並且有像Java_org_jiggawatt_giffle_Giffle_Init
這樣的名稱。它們具有用於JNI調用約定的正確的本機端參數。
0
你是如何構建這個的?我發現每次運行ndk-build
之後,我都必須在Eclipse中執行Project-> Clean ...以讓Eclipse獲取.so文件並將其複製到apk中。
0
相關問題
- 1. 發現本機庫時發生Java UnsatisfiedLinkError
- 2. 使用JNI時UnsatisfiedLinkError?
- 3. 加載本地庫時出現UnsatisfiedLinkError
- 4. Tomcat中的本地庫UnsatisfiedLinkError + Windows + eclipse
- 5. Java本機庫System.loadLibrary失敗,出現UnsatisfiedLinkError錯誤
- 6. UnsatisfiedLinkError - 原生庫 - jnidispatch.dll
- 7. JNI UnsatisfiedLinkError依賴庫
- 8. UnsatisfiedLinkError Java與Rxtx庫
- 9. Maven - 使用java.library.path的UnsatisfiedLinkError
- 10. Unsatisfiedlinkerror本地方法
- 11. Android NDK UnsatisfiedLinkError調用駐留在Android庫項目中的本地函數時
- 12. Android本機使用Qt庫
- 13. UnsatisfiedLinkError在運行時
- 14. UnsatisfiedLinkError嘗試加載OpenCV庫
- 15. UnsatisfiedLinkError:找不到依賴庫
- 16. android NDK加載庫 - UnsatisfiedLinkError
- 17. UnsatisfiedLinkError:本機庫sunmscapi.dll已在另一個類加載器中加載
- 18. UnsatisfiedLinkError使用痛飲與Java
- 19. android ndk UnsatisfiedLinkError當使用預建的共享庫
- 20. 使用iOS和Android的本機庫(Nativescript)
- 21. 從.net UWP應用程序使用本機庫時診斷DllNotFoundException
- 22. 當使用本地主機尋址時,JavaScript庫不起作用
- 23. UnsatisfiedLinkError在Mac上的Eclipse中使用JavaCV
- 24. JProfiler啓動時出現UnsatisfiedLinkError
- 25. 在JNI調用時出現UnsatisfiedLinkError
- 26. phonegap android插件使用本機庫
- 27. 使用Android本機庫顯示圖像
- 28. UnsatisfiedLinkError用在Mac OS X中使用NetBeans
- 29. 本地方法上的JNI UnsatisfiedLinkError
- 30. 文本在使用pdfmake庫時脫機頁面