为什么我在使用Jni onload时出错,而没有使用javah';谁的产量?

为什么我在使用Jni onload时出错,而没有使用javah';谁的产量?,java,android,java-native-interface,javah,Java,Android,Java Native Interface,Javah,我有一个java方法: 公共静态本机void processBuffer(ByteBuffer bb) 用爪哇 JNIEXPORT void JNICALL Java_com_lan_factorial_IssmJni_processBuffer (JNIEnv *env, jclass klass , jobject buf) 完美地工作 使用Jni onload static JNINativeMethod method_table[] = { {"fac"

我有一个java方法:

公共静态本机void processBuffer(ByteBuffer bb)

用爪哇

JNIEXPORT void JNICALL Java_com_lan_factorial_IssmJni_processBuffer
  (JNIEnv *env, jclass klass , jobject buf)
完美地工作

使用Jni onload

static JNINativeMethod method_table[] = {
        {"fac"      ,     "(J)J" , (void *) factorial},
        {"getBuffer",     "()[D" , (void *) getBufferNative},
        //{"processBuffer", "(Ljava/nio/ByteBuffer)V", (void *) fillBuffer}};
这个表中的其他方法可以工作,除了上面从javah生成的方法对应的最后一个方法。当然,如果我执行JNIonLoad,我将有一个方法调用fillBuffer

有人能解释为什么javah工作,而不是jni_onload吗。我做错什么了吗? 我有其他使用jni_onload的方法,所以我不想使用javah


谢谢

方法签名中缺少分号。它根本不“对应”。不要猜测本机方法签名:使用javap-s的输出。剪切粘贴。

有人帮我解决了这个问题,漏掉了一个分号:)问题不清楚,标题也不具有代表性。