-1

私はこのJavaメソッドを持っています:

public static native void processBuffer(ByteBuffer bb);

ジャバで

JNIEXPORT void JNICALL Java_com_lan_factorial_IssmJni_processBuffer
  (JNIEnv *env, jclass klass , jobject buf)

完璧に働く

Jni オンロードで

static JNINativeMethod method_table[] = {
        {"fac"      ,     "(J)J" , (void *) factorial},
        {"getBuffer",     "()[D" , (void *) getBufferNative},
        //{"processBuffer", "(Ljava/nio/ByteBuffer)V", (void *) fillBuffer}};

上記の javah から生成されるメソッドに対応する最後のメソッドを除いて、この表の他のメソッドは機能します。もちろん、JNI onload を実行すると、fillBuffer というメソッドが呼び出されます。

javah が機能するのに jni_onload が機能しない理由を誰かが説明できますか。私は何か間違ったことをしましたか?jni_onload を使用する他の方法があるため、javah から離れたいと考えています。

ありがとう

4

1 に答える 1

1

メソッド シグネチャにセミコロンがありません。まったく「対応」していません。ネイティブ メソッドのシグネチャを推測しないでください。javap -s の出力を使用してください。カット&ペースト。

于 2012-11-14T22:13:00.767 に答える