关于cocos2d-x和安卓之间的相互调用-创新互联-成都快上网建站

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

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

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的城区网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

首先,cocos2d调用安卓

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

#include
#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
#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  大家一起交流

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:关于cocos2d-x和安卓之间的相互调用-创新互联
URL地址:http://kswjz.com/article/cshdgp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流