2012-05-25 91 views
1

我面臨的情況我不知道。我嘗試測試一個我在C++中實現的方法,並且使用swig生成包裝器。編譯完成後,當我嘗試運行該應用程序時,出現錯誤java.lang.UnsatisfiedLinkErrorAndroid:無法加載庫

還進一步指出

cannot load library:reloc_library[1311]:33 
cannot locate '_Z13recognizeFacePKcS0_' 
... 

,突然拋出異常。

我試過用adb外殼調試並在正確位置找到庫(data/data/com/mesh/faceAuth/lib/libfaceAuth.so)但它給出了同樣的錯誤。我也從this網站讀到,它與錯誤的STL實現有關,我沒有任何線索。我會非常感謝你的坦誠的建議。

Regards, Mohammed。

回答

2

用你提供了什麼信息的猜測,你試圖加載的庫需要一些依賴來加載它。

例如:

System.loadLibrary("bullet"); 
System.loadLibrary("irrlicht"); 
System.loadLibrary("gamescript"); 

gamescript庫需要其他2之前它被加載庫。否則,它給了我你提到的同樣的錯誤。如果您可以在此處發佈您的.mk文件的某些部分,可以在這個問題上進一步挖掘。

+0

LOCAL_PATH:= $(叫我-DIR) 包括$(CLEAR_VARS) OPENCV_CAMERA_MODULES:=關閉 包括../includeOpenCV.mk IFEQ( 「$(通配符$(OPENCV_MK_PATH))」, 「」 ) \t #try從默認加載OpenCV.mk安裝位置 \t包括$(TOOLCHAIN_PREBUILT_ROOT)/user/share/OpenCV/OpenCV.mk 其他 \t包括$(OPENCV_MK_PATH) ENDIF LOCAL_ALLOW_UNDEFINED_SYMBOLS:=真 LOCAL_LDLIBS + = -llog -ldl LOCAL_C_INCLUDES + = JNI/faceAuth.h LOCAL_MODULE:= faceRec LOCAL_SRC_FILES:= \t \t faceAuth.cpp GEN/faceAuth_wrap.cpp \t 包括$(BUILD_SHARED_LIBRARY) – user1382114

+0

最新的錯誤,原生Lcom/android/faceAuth/core/faceAuthJNI; .init(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V – user1382114

0

您的錯誤與STL無關。

您可能在代碼中引用了全局函數::recognizeFace(char const*, char const*)。也許,您定義了另一個功能,例如recognizeFace(char*, char*)