이미 주 동안이 붙어있다을 사용하는 경우.안드로이드 UnsatisfiedLinkError를 네이티브 라이브러리
나는 안드로이드 토런트 클라이언트에서 libtorrent을 사용하고있다. 최근에는 자석 링크와 같은 새로운 기능을 추가하고 싶었습니다.
모든 기본 기능 PROJECT_FOLDER/jni/libtorrent.h
에 선언하고 PROJECT_FOLDER/jni/libtorrent.cpp
에서 구현됩니다.
지금까지 아무 잘못 없지만, 최근에, 나는 libtorrent.h
에 새로운 기능을 추가 :
JNIEXPORT jstring JNICALL Java_com_my_package_LibTorrent_MagnetToTorrent
(JNIEnv *env, jobject obj, jstring MagnetLink, jstring TorrentFolder);
내가 libtorrent.cpp
JNIEXPORT jstring JNICALL Java_com_my_package_LibTorrent_MagnetToTorrent
(JNIEnv *env, jobject obj, jstring MagnetLink, jstring TorrentFolder) {
//function code here
}
내가 코드에 ndk-build
를 실행에 구현을 추가하고, 그것은 컴파일되었습니다.
public native String MagnetToTorrent(String MagnetLink, String TorrentFolder);
하지만 호출 할 때마다, 나는 UnsatisfiedLinkError: MagnetToTorrent
를 얻을 :
com.my.package.LibTorrent
클래스에서 나는 이전에 괜찮 았는데 다른 네이티브 메소드를 선언 한 다음 선언, 같은 방법을 추가했습니다. 전에 네이티브 함수를 추가 한 이후로 이것은 정말 이상합니다.
모든 도움을 주시면 대단히 감사하겠습니다. 고맙습니다.
편집 : libtorrent.h
에 선언 모든 기능이 같은 extern "C" {}
로 둘러싸여있다 :
#ifdef __cplusplus
extern "C" {
#endif
/*Function declarations*/
#ifdef __cplusplus
}
#endif
는 트리플 .H 및 .CPP –
@AndrewG 감사 모두에서 전체 패키지 이름 Java_com_my_package_LibTorrent_MagnetToTorrent에 맞춤법을 검사,하지만 난 이미 확인 : 응용 프로그램이
UnsatisfiedLinkError
를 발생시킬 수있는 다른 문제에 대해서는이 링크는 도움이 될 수 있습니다 여러 번, 나는 잃어 버렸어. 나는 지금까지 그것을 보아 왔어 야한다고 생각합니다. 그래서 그럴 것입니다. – Gabriel