關於cocos2d-x 和安卓之間的相互調用

來源:互聯網
上載者:User

標籤:cocos2d-x   android   互調

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

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


本文出自 “7525479” 部落格,請務必保留此出處http://7535479.blog.51cto.com/7525479/1710367

關於cocos2d-x 和安卓之間的相互調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.