关于cocos2d-x 和安卓之间的相互调用
admin
2023-02-12 04:00:03
0

最近在研究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  大家一起交流

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


相关内容

热门资讯

玩家分享攻略“天天南通长牌真的... 家人们!今天小编来为大家解答天天南通长牌透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里...
今日重大发现“蛮王牛牛到底有挂... 有 亲,根据资深记者爆料蛮王牛牛是可以开挂的,确实有挂(咨询软件无需打开...
今日重大发现“扎西茶楼究竟有挂... 您好:扎西茶楼这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...
今日重大消息“同城游比鸡有没有... 您好:同城游比鸡这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...
玩家分享攻略“圣盛宜昌花牌是不... 家人们!今天小编来为大家解答圣盛宜昌花牌透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
玩家分享攻略“情怀莆仙有挂吗?... 家人们!今天小编来为大家解答情怀莆仙透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...
今日重大发现“新毛豆互娱有挂吗... 今日重大发现“新毛豆互娱有挂吗?”(原来真的有挂)您好,新毛豆互娱这个游戏其实有挂的,确实是有挂的,...
玩家最新攻略“上海泸乐麻将到底... 玩家最新攻略“上海泸乐麻将到底是不是挂?”(必胜开挂神器)您好,上海泸乐麻将这个游戏其实有挂的,确实...
【今日要闻】“新蓝鲸拼三张有没... 有 亲,根据资深记者爆料新蓝鲸拼三张是可以开挂的,确实有挂(咨询软件无需...
蔡磊病情接近终末期,“五体瘫软... 京东前副总裁确诊渐冻症已超过6年。今天,他通过媒体发布了一段视频,这段视频记录了蔡磊“失声”前说的一...