Android JNI c/c++调用java 无需新建虚拟机

近期通过研究SDL源码 得出android JNI c/c++调用java 无需新建虚拟机: 具体步骤如下

第一步获得:两个参数 JNIEnv和jclass

void Java_com_Test_Audio_Init( JNIEnv* env,jclass cls, jobject thiz )
{
  InitJNI(env,cls);
}
bool InitJNI(JNIEnv* env,jclass cls)
{
  m_Env=env;
  m_cls=cls;
}

第二步

获得java那边定义的函数的名字

Android JNI c/c++调用java 无需新建虚拟机

第三步 传递参数调用java 函数

char *str="god_is_a_girl.mp3";
char str[]="nihao";
 jbyte *by = (jbyte*)str;
 jbyteArray jarray = m_Env->NewByteArray(strlen(str));
 m_Env->SetByteArrayRegion(jarray, 0, strlen(str), by);
///调用java函数
 m_Env->CallStaticBooleanMethod(m_cls, midCreateGLContext,jarray);

Original: https://www.cnblogs.com/zhujiabin/p/10605524.html
Author: 星辰之力
Title: Android JNI c/c++调用java 无需新建虚拟机

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535210/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球