关于cocos2d-x 和安卓之间的相互调用

关于cocos2d-x 和安卓之间的相互调用,第1张

概述最近在研究cocos2d游戏移植安卓需要调用很多方法,所以在研究之中写下它们之间相互调用 首先,cocos2d调用安卓 在一个.h文件中添加头文件 #include <jni.h> #include "platform\android\jni\JniHelper.h" JniMethodInfo minfo;//定义Jni函数信息结构体 //getStaticMethodInfo 次函数返回一个b

最近在研究cocos2d游戏移植安卓需要调用很多方法,所以在研究之中写下它们之间相互调用



首先,cocos2d调用安卓

在一个.h文件中添加头文件

#include <jni.h>
#include "platform\androID\jni\JniHelper.h"


JniMethodInfo minfo;//定义Jni函数信息结构体
//getStaticmethodInfo 次函数返回一个bool值表示是否找到此函数
bool isHave = JniHelper::getStaticmethodInfo(minfo,"com/zhangying/jni/applay","testFunWithStringAndRtn","(I)V");

com/zhangying/jni/applay参数为调用安卓中的类的全路径;

testFunWithStringAndRtn为类中要调用的方法

(I)V 返回值和传入参数的类型


jobject jobj;
if (!isHave) {
cclog("不存在");
}
else{
cclog("存在");
//调用此函数
jobj = minfo.env->CallStaticObjectMethod(minfo.classID,minfo.methodID,this->choiceMoney);


// ReadData::setUserDefaultInt("RECHARGE",this->choiceMoney);
}

完成以上步骤就可以测试cocos2d调用安卓中的代码了

然后安卓调用cocos2d

首先在项目中找到jni中的hellocpp中的main.cpp

在其中加入

#include <androID/log.h>
#include "data/ReadData.h"


#define LOG_TAG "main"
#define LOGD(...) __androID_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)


using namespace cocos2d;
voID cocos_androID_app_init (jnienv* env,jobject thiz) {
LOGD("cocos_androID_app_init");
AppDelegate *pAppDelegate = new AppDelegate();
}


一下代码是自己加入的 上面的一些自带的不用修改
extern "C"
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
voID Java_com_yiqu_mobilesdk_iap_IAPOrder_callbackMobiles(jnienv *env,jobject thiz)
{


cclog("测试是否进入");

}

#endif
}

注意:

Java_com_yiqu_mobilesdk_iap_IAPOrder_callbackMobiles这个名字不是随便定义的

Java是固定的com.yiqu.mobilesdk.iap是包名 IAPOrder是类名字,callbackMobiles是你要调用的方法名字

这样就写成了这个方法




在你要调用cocos2d的java类中写上要调用的方法名字 写法如下

public native static voID callbackMobiles(); 名字随便定义,但是native不能丢掉

然后在该类中直接调用callbackMobiles()

就可以直接进入到cclog("测试是否进入");中了


哈哈 结束了,这是本人正在用的游戏中支付的一块代码调用,运行都正常,如有不好的地方望指出

也可进入群:252799892 大家一起交流

如果感觉对你有帮助给个评价

总结

以上是内存溢出为你收集整理的关于cocos2d-x 和安卓之间的相互调用全部内容,希望文章能够帮你解决关于cocos2d-x 和安卓之间的相互调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1004033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存