2012-11-29 5 views
3

Java 기반 활동, Java JNI 인터페이스 클래스 및 원시 코드가있는 Android 프로젝트가 있습니다. 내 자바 인터페이스 클래스와 로그 캣 출력에서 ​​적절한JNIOnLoad가 실행되지 않는 이유는 무엇입니까?

System.loadlibrary(_libraryname_); 

있습니다

내 CPP 파일 헤더에서
11-29 15:11:20.737: D/dalvikvm(8940): No JNI_OnLoad found in /data/data/com.example.testjni/lib/libTestJNI.so 0x406ef030, skipping init 

:

다음 CPP 파일에서

extern "C" { 
    JNIEXPORT jint JNICALL JNIOnLoad(JavaVM *, void *); 
} 

JNIEXPORT jint JNICALL JNIOnLoad(JavaVM *vm, void *reserved) 
{ 
    LOGI("JNIOnLoad"); 
    jvm = vm; 
    return JNI_VERSION_1_6; /* the required JNI version */ 
} 

하지만 여전히 OnLoad 함수가 호출되지 않습니다. 나는 앱을 제거하고 다시 설치하려고했지만 결코 실행되지 않습니다.

답변

8

기능 서명은 JNI_OnLoad입니다. 밑줄/JNIOnLoad 사이에 있습니다.

+3

와우 ... 당신이 너무 오랫동안 뭔가 쳐다 보았을 때 알 수 있습니다. – L7ColWinters

관련 문제