JNI动态注册只需在cpp文件中实现JNI_OnLoad函数
OnLoad函数实现判断JNI版本和调用RegisterNatives函数的两个功能。
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void* reserved){
JNIEnv *env = NULL;
JNINativeMethod nm[1];
jclass cls;
jint result = -1;
if(vm->GetEnv((void**)&env, JNI_VERSION_1_4) != JNI_OK){
printf("Error");
return JNI_ERR;
}
nm[0].name = "getIntFromJni";
nm[0].signature = "()I";
nm[0].fnPtr = (void*)getIntFromJni;
cls = env->FindClass("com/example/test7/TestJni");
env->RegisterNatives(cls,nm,1);
return JNI_VERSION_1_4;
}