我的Android NDK應用程序中的某個C代碼調用了signal.h中定義的sigemptyset()
函數。我正在使用NDK-r9
來構建我的項目。sigemptyset()NDK UnsatisfiedLinkError dlopen()
我的庫文件名爲「libnative-service.so」構建的很好,在c代碼編譯後。 但是在運行應用程序時,我得到以下有關引用sigemptyset()
的錯誤。
我錯過了什麼?
09-22 15:13:09.102: E/art(3718): dlopen("/data/app-lib/com.project/libnative-service.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "sigemptyset" referenced by "libnative-service.so"...
09-22 15:13:09.103: D/AndroidRuntime(3718): Shutting down VM
09-22 15:13:09.106: E/AndroidRuntime(3718): FATAL EXCEPTION: main
09-22 15:13:09.106: E/AndroidRuntime(3718): Process: com.project, PID: 3718
09-22 15:13:09.106: E/AndroidRuntime(3718): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "sigemptyset" referenced by "libnative-service.so"...
你是如何編譯/構建你的庫?什麼是編譯器/鏈接器命令行? – 2014-09-22 14:20:11
這個工作適合你嗎?當嘗試運行ndk分析工具時,Im也有類似的問題 – 2014-10-14 15:05:16