为什么我在使用Jni onload时出错,而没有使用javah';谁的产量?
我有一个java方法: 公共静态本机void processBuffer(ByteBuffer bb) 用爪哇为什么我在使用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"
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的输出。剪切粘贴。有人帮我解决了这个问题,漏掉了一个分号:)问题不清楚,标题也不具有代表性。