近期通过研究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);

 

相关文章:

  • 2022-01-28
  • 2021-07-14
  • 2021-12-04
  • 2021-11-30
  • 2021-11-30
  • 2021-10-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-09
  • 2021-11-30
  • 2021-09-15
  • 2021-05-24
相关资源
相似解决方案