關(guān)于cocos2d-x和安卓之間的相互調(diào)用-創(chuàng)新互聯(lián)

最近在研究cocos2d游戲移植安卓需要調(diào)用很多方法,所以在研究之中寫下它們之間相互調(diào)用

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的城區(qū)網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

首先,cocos2d調(diào)用安卓

在一個.h文件中添加頭文件

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

JniMethodInfo minfo;//定義Jni函數(shù)信息結(jié)構(gòu)體
//getStaticMethodInfo 次函數(shù)返回一個bool值表示是否找到此函數(shù)
bool isHave = JniHelper::getStaticMethodInfo(minfo, "com/zhangying/jni/applay", "testFunWithStringAndRtn", "(I)V");

com/zhangying/jni/applay參數(shù)為調(diào)用安卓中的類的全路徑;

testFunWithStringAndRtn為類中要調(diào)用的方法

(I)V 返回值和傳入?yún)?shù)的類型

jobject jobj;
if (!isHave) {
CCLog("不存在");
}
else{
CCLog("存在");
//調(diào)用此函數(shù)
jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID, this->choiceMoney);

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

完成以上步驟就可以測試cocos2d調(diào)用安卓中的代碼了

 然后安卓調(diào)用cocos2d

首先在項目中找到j(luò)ni中的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是你要調(diào)用的方法名字

這樣就寫成了這個方法

在你要調(diào)用cocos2d的java類中寫上要調(diào)用的方法名字 寫法如下

public native static void callbackMobiles();  名字隨便定義,但是native不能丟掉

然后在該類中直接調(diào)用callbackMobiles()

就可以直接進入到CCLog("測試是否進入");中了

哈哈 結(jié)束了,這是本人正在用的游戲中支付的一塊代碼調(diào)用,運行都正常,如有不好的地方望指出

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

如果感覺對你有幫助給個評價

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章標(biāo)題:關(guān)于cocos2d-x和安卓之間的相互調(diào)用-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article18/cshdgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)頁設(shè)計公司網(wǎng)站改版、用戶體驗Google、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)