2012-11-29 58 views
3

我有一個基於Java的Activity,Java JNI接口類和本地代碼的Android項目。我有合適的爲什麼不能運行JNIOnLoad?

System.loadlibrary(_libraryname_); 

在我的Java接口類,並從logcat的輸出:

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 *); 
} 

在cpp文件:

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