Android:如何通过c++来调用java程序:接上篇
Posted ImCode0222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:如何通过c++来调用java程序:接上篇相关的知识,希望对你有一定的参考价值。
android:如何通过c++来调用java程序:接上篇
设备/引擎:Mac(11.6)/cocos
开发工具:Android studio(4.1.2)
开发语言:c++/java
开发需求:保存图片到手机相册
上篇说到如何保存图片到手机相册,但所有代码均为java编写,如果项目主要以c++为主,则需要考虑通过c++来调用java代码。
c++调用部分代码如下:
JniMethodInfo minfo;
bool isHave = JniHelper::getStaticMethodInfo(minfo,"包名/MainActivity","rtnActivity","()L包名/MainActivity;");
if(!isHave)
CCLOG("jni:不能获取单例");
else
CCLOG("jni:可以获取单例");
jobject jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID); //获取单例对象
bool isHaveNoStaticMethod = JniHelper::getMethodInfo(minfo,"包名/MainActivity","java中的方法", "(参数)V"); //参数如果不是string类型的,则直接连着写即可:如:IF-整型,浮点型,若是string类型则需要这样写:Ljava/lang/String;
if (!isHaveNoStaticMethod)
CCLOG("jni:alertDiaShowt方法不存在");
else
CCLOG("jni:alertDiaShow方法存在");
jstring jdata = minfo.env->NewStringUTF(name);
minfo.env->CallVoidMethod(jobj, minfo.methodID, jdata);
CCLOG("jni-java函数执行完毕");
只需要在指定位置调用java中的方法即可。
希望给大家提供一些帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~
以上是关于Android:如何通过c++来调用java程序:接上篇的主要内容,如果未能解决你的问题,请参考以下文章
SWIG (Java):如何将带有回调函数的结构从 Android 应用程序传递给 C++?
#yyds干货盘点#Android C++系列:JNI调用 Java 类的构造方法和父类的方法