3

Javaベースのアクティビティ、Java JNIインターフェイスクラス、およびネイティブコードを備えたAndroidプロジェクトがあります。私は適切な

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関数が呼び出されることはありません。アプリをアンインストールして再インストールしようとしましたが、実行されません。

4

1 に答える 1

8

関数のシグネチャはJNI_OnLoadです。JNIOnLoadの間にはアンダースコア/_があります。

于 2012-11-30T06:02:22.637 に答える