jint result;if((*vm)->GetEnv(vm, (void**)&env, JNI_VERSION_1_6) ==JNI_OK) { LOGI("Catch JNI_VERSION_1_6\n"); result=JNI_VERSION_1_6; }elseif((*vm)->GetEnv(vm, (void**)&env, JNI_VERSION_1_4) ==JNI_OK) { LOGI("Catch JNI_VERSION_1_4\n"); result=JNI_VERSION_1...
"JNI_OnLoad startup ...");javaVM=vm;JNIEnv*env=NULL;jint result;if((*vm)->GetEnv(vm,(void**)&env,JNI_VERSION_1_6)==JNI_OK){LOGI("Catch JNI_VERSION_1_6\n");result=JNI_VERSION_1_6;}elseif((*vm)->GetEnv(vm,(void**)&env,JNI_VERSION_1_4)==JNI_OK){LOGI("Catch JNI_...
...JavaVM 获取 JNIEnv ( GetEnv ) --- 函数原型 : 从 Java 虚拟机 ( JavaVM ) 中获取 JNI 运行环境 ( JNIEnv ) ; ① 参数说明 : void...//C++ 中封装了 JNIInvokeInterface 的 GetEnv 方法 jint GetEnv(void** env, jint version) { return functions...->GetEnv(this, env, version); } ....
JNI 版本 中可选的有四个值 , 但是只能选择返回后三个 JNI_VERSION_1_2 , JNI_VERSION_1_4 , JNI_VERSION_1_6 , 返回上述三个值任意一个没有区别 ; 返回JNI_VERSION_1_1 会报错 ; #define JNI_VERSION_1_1 0x00010001 #define JNI_VERSION_1_2 0x00010002 #define JNI_VERSION_1_4 0x00010004...
int registerResult = vm->GetEnv( (void **) &env, JNI_VERSION_1_6 ); 1. 2. 3. 4. 5. 6. 7. 8. ⑤ 获取 Java 类 : 调用 JNIEnv 结构体的 FindClass 方法获取 jclass 对象 ; /* 动态注册的 Java 类名称 注意: 包名类名之间使用 "/" 分割 ...
*/JNIEXPORT jintJNI_OnLoad(JavaVM*vm,void*reserved); ② 参数列表说明 : JavaVM* vm : 表示 Java 虚拟机 ; void* reserved : 一般是 NULL ; ③ 返回值说明 :返回当前 NDK 使用的 JNI 版本 ; JNI 版本 中可选的有四个值 , 但是只能选择返回后三个 JNI_VERSION_1_2 , JNI_VERSION_1_4 , JNI...
result=JNI_VERSION_1_4; }else{ LOGI("Default JNI_VERSION_1_2\n"); result=JNI_VERSION_1_2; } assert(env!=NULL);//动态注册native函数 ...returnresult; }void*pthread_run(void*arg) { JNIEnv*env =NULL;//(*javaVM)->AttachCurrentThread(javaVM,&env,NULL)//(*javaVM)->GetEnv(javaVM,...
*/JNIEXPORTjintJNI_OnLoad(JavaVM*vm,void*reserved); ② 参数列表说明 : JavaVM* vm : 表示 Java虚拟机; void* reserved : 一般是 NULL ; ③ 返回值说明 :返回当前 NDK 使用的 JNI 版本 ; JNI 版本 中可选的有四个值 , 但是只能选择返回后三个 JNI_VERSION_1_2 , JNI_VERSION_1_4 , JNI_VERSI...