2012-06-23 4 views
2

내 프로젝트에서, 네이티브 lib를로드하고 네이티브 함수를 제공하는 PlayerCluster.java이라는 래퍼 클래스가 있습니다. 네이티브 함수가 호출 될 때 클래스 이름 (PlayerCluster.java) 또는 그 패키지를 변경하면 java.lang.UnsatisfiedLinkError이됩니다.안드로이드 JNI에서 "UnsatisfiedLinkError"

왜 클래스 이름을 바꿀 때이 오류가 발생합니까? 네이티브 lib를 특정 Java 클래스에로드해야하는 방식이 있습니까?

+0

귀하의 질문은 좋았지 만 더 많은 정보를 제공하고 쉽게 찾을 수 있기 때문에 전체 오류가 포함되었습니다. 질문에 많은 정보가 포함되어 있으면 사람들이 더 빨리 대답합니다. _ _ _ _ 또한 귀하의 질문에 대한 대답이 제공된 경우 제공된 답변을 수락하시는 것이 좋습니다. 그렇게함으로써, 당신은 또한 포인트를 받게 될 것이므로 그것은 당신 모두에게 보람이 될 것입니다. 또한 귀하가 유효한 답변을 수락하면 귀하의 질문은 답변되지 않은 섹션에 나타나지 않습니다. 그래서 나 같은 사람들은 당신의 질문에 시간을 낭비하지 않을 것입니다. – ForceMagic

답변

2

클래스의 이름을 바꾸면 기본 라이브러리의 JNIEXPORT 메소드의 이름을 새 Java 클래스 이름과 일치하도록 변경해야하며 네이티브 라이브러리를 다시 빌드해야합니다. 이 방법의 signture 주어진 예를 들어

:

JNIEXPORT jobjectArray JNICALL 
Java_com_mn_rootscape_utils_NativeMethods_getFilesPermissions(JNIEnv* env, jobject thizz, jobjectArray filePathsArray) 

NativeMethods, 당신이 볼 수 있듯이, 자바 클래스는 기본 함수 서명의 일부입니다.

+0

나는 이해한다. 감사합니다 – englefly

+2

괜찮습니다. 대답이 필요한지 확인한 후에 대답을 수락하십시오. –