2012-05-25 2 views
1

나는 잘 모르겠다. 나는 C++로 구현 한 메서드 하나를 테스트하려고 시도했으며 swig를 사용하여 래퍼를 생성했습니다. 컴파일 한 후 응용 프로그램을 실행하려고 시도했을 때 java.lang.UnsatisfiedLinkError 오류가 발생했습니다.Android : 라이브러리를로드 할 수 없습니다.

그것은 더 상태

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

갑자기 던져 예외가.

내가 올바른 위치에 디버깅 ADB 쉘 발견 라이브러리를 사용하여 시도 (데이터/데이터/COM/메쉬/faceAuth/lib 디렉토리/libfaceAuth.so)하지만이 같은 오류를 제공합니다. 나는 또한 this 사이트를 읽었는데, 내가 잘못 알고있는 STL 구현과 관련이있다. 나는 당신의 솔직한 제안에 매우 감사 할 것입니다.

감사합니다. 모하메드.

답변

2

제공하신 정보 중 가장 적합한 것으로 추측하고 있습니다.로드하려는 라이브러리에로드되기 전에 일부 종속성이 필요합니다. 예를 들어

:

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

gamescript 라이브러리는 이전에로드 할 다른 2 라이브러리를 필요로한다. 그렇지 않으면 언급 한 것과 같은 오류가 발생합니다. 여기에 도서관을 짓기 위해 .mk 파일의 일부를 게시 할 수 있다면이 문제를 더 자세히 조사 할 수 있습니다.

+0

LOCAL_PATH : = $ 는 $ (CLEAR_VARS) OPENCV_CAMERA_MODULES 포함 (내-DIR 전화) : = 오프 는 ""../includeOpenCV.mk 는 ifeq ("$ (와일드 카드 $ (OPENCV_MK_PATH를))"를 포함 = 사실 :) \t #try는 다른 \t가 $에게 (OPENCV_MK_PATH) ENDIF LOCAL_ALLOW_UNDEFINED_SYMBOLS을 포함 /user/share/OpenCV/OpenCV.mk (TOOLCHAIN_PREBUILT_ROOT) \t는 $를 포함하는 설치 위치를 기본값에서 OpenCV.mk을로드 LOCAL_LDLIBS + = -llog -ldl LOCAL_C_INCLUDES + = JNI/faceAuth.h LOCAL_MODULE = faceRec LOCAL_SRC_FILES : = \t faceAuth.cpp \t 세대/faceAuth_wrap.cpp \t 는 $ (BUILD_SHARED_LIBRARY) – user1382114

+0

최신 오류를 포함 native 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*)과 같은 다른 함수가 정의되어있을 수 있습니다.

관련 문제