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中的方法即可。

希望给大家提供一些帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值