首页 > 代码库 > NDK中可靠的获取JNIEnv*的方法
NDK中可靠的获取JNIEnv*的方法
使用NDK时,几乎任何方法都需要一个JNIEnv来调用。这个类是和线程相关的,如何可靠的获取它?
首先,作为NDK的so,必然有一个地方是由android系统调用的,这个调用将带来一个JNIEnv参数,不要使用它,而是调用:
JNIEnv->GetJavaVM(&g_javaVM);
获取一个JavaVM类型变量。
接着在需要使用JNIEnv的时候调用
int status; JNIEnv* _jniEnv = NULL; status = g_javaVM->GetEnv((void **)&_jniEnv, JNI_VERSION_1_6); if(status < 0) { status = g_javaVM->AttachCurrentThread(&_jniEnv, NULL); if(status < 0) { _jniEnv = NULL; } }
即可可靠的得到jnienv了。
NDK中可靠的获取JNIEnv*的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。