心胸决定格局,眼界决定境界...

JNI 不同版本

ID可以缓存

static jfieldID jfieldContext;

 

typedef union {
JNIEnv* env;
void* venv;
} UnionJNIEnvToVoid;

 

 

jint JNI_OnLoad(JavaVM* vm, void* reserved) {

UnionJNIEnvToVoid uenv;

JNIEnv* env;
jclass clazz;

jint result = -1;
LOGI("Media Tag: JNI OnLoad\n");

#ifdef JNI_VERSION_1_6
if (result==-1 && vm->GetEnv((void**) &uenv.venv, JNI_VERSION_1_6) == JNI_OK) {
LOGI("JNI_OnLoad: JNI_VERSION_1_6\n");
result = JNI_VERSION_1_6;
}
#endif
#ifdef JNI_VERSION_1_4
if (result==-1 && vm->GetEnv((void**) &uenv.venv, JNI_VERSION_1_4) == JNI_OK) {
LOGI("JNI_OnLoad: JNI_VERSION_1_4\n");
result = JNI_VERSION_1_4;
}
#endif
#ifdef JNI_VERSION_1_2
if (result==-1 && vm->GetEnv((void**) &uenv.venv, JNI_VERSION_1_2) == JNI_OK) {
LOGI("JNI_OnLoad: JNI_VERSION_1_2\n");
result = JNI_VERSION_1_2;
}
#endif

if(result == -1 || !(env = uenv.env)
|| !(clazz = env->FindClass("com/sds/android/ttpod/media/MediaTag"))
|| !(jfieldContext = env->GetFieldID(clazz, "mNativeContext", "I"))) {
return JNI_FALSE;
}

return result;
}

posted @ 2016-03-04 11:45  WELEN  阅读(2166)  评论(0)    收藏  举报