我有这个java方法:
public static native void processBuffer(ByteBuffer bb);
用javah
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。
谢谢