生活随笔
收集整理的這篇文章主要介紹了
【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(下)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?示例代碼段2:
Xcode 代碼:
?
?#if?(CC_TARGET_PLATFORM?==?CC_PLATFORM_ANDROID)?//判斷當(dāng)前是否為Android平臺(tái)?????JniMethodInfo?minfo;??????????bool?isHave?=?JniHelper::getStaticMethodInfo(minfo,?????????????????????????????????????????????????"com/ai/ommr/OhMonsterMR4Android",?"testFunWithInt","(I)V");?????????if?(!isHave)?{?????????CCLog("jni:此函數(shù)不存在");?????}else{?????????CCLog("jni:此函數(shù)存在");??????????????????minfo.env->CallStaticVoidMethod(minfo.classID,?minfo.methodID,823);?????}?????CCLog("jni-java函數(shù)執(zhí)行完畢");?#endif?Android(Java) 代碼:
?public?static?void?testFunWithInt(int?_int)?{?????Log.e("Himi",?"靜態(tài)函數(shù)示例1.有參數(shù),無(wú)返回值;傳入的參數(shù)int="?+?_int);?}? 運(yùn)行截圖:
示例代碼段3: Xcode 代碼:
?
?#if?(CC_TARGET_PLATFORM?==?CC_PLATFORM_ANDROID)?//判斷當(dāng)前是否為Android平臺(tái)?????JniMethodInfo?minfo;????bool?isHave?=?JniHelper::getStaticMethodInfo(minfo,??????????????????????????????????????????????"com/ai/ommr/OhMonsterMR4Android","testFunWithIntAndRtn","(I)I");?jint?_int?;?if?(!isHave)?{?????CCLog("jni:此函數(shù)不存在");?}else{?????CCLog("jni:此函數(shù)存在");??????????_int?=?minfo.env->CallStaticIntMethod(minfo.classID,?minfo.methodID,823);????????????JniMethodInfo?minfo_ty;?????bool?isHave?=?JniHelper::getStaticMethodInfo(minfo_ty,?"com/ai/ommr/OhMonsterMR4Android",?"testFunWithInt",??"(I)V");??????if?(isHave)?{??????????minfo_ty.env->CallStaticVoidMethod(minfo_ty.classID,?minfo_ty.methodID,_int);??????}???}?CCLog("jni-java函數(shù)執(zhí)行完畢");?#endif? Android(Java) 代碼:
?
?public?static?int?testFunWithIntAndRtn(int?_int)?{?????Log.e("Himi",?"靜態(tài)函數(shù)示例1.有參數(shù),有返回值;傳入的參數(shù)int="?+?_int);?????return?_int+1000;?}? 運(yùn)行截圖:
示例代碼段4: Xcode 代碼:
?
#if?(CC_TARGET_PLATFORM?==?CC_PLATFORM_ANDROID)?//判斷當(dāng)前是否為Android平臺(tái)?????JniMethodInfo?minfo;??????????bool?isHave?=?JniHelper::getStaticMethodInfo(minfo,??"com/ai/ommr/OhMonsterMR4Android","testFunWithStringAndRtn","(I)Ljava/lang/String;");?????jobject?jobj;?????if?(!isHave)?{?????????CCLog("jni:此函數(shù)不存在");?????}else{?????????CCLog("jni:此函數(shù)存在");??????????????????jobj?=?minfo.env->CallStaticObjectMethod(minfo.classID,?minfo.methodID,823);?????}?????CCLog("jni-java函數(shù)執(zhí)行完畢");?#endif? Android(Java) 代碼:
?
?public?static?String?testFunWithStringAndRtn(int?_int)?{?????Log.e("Himi",?"靜態(tài)函數(shù)示例4.有參數(shù),有返回值(String類(lèi)型);int="?+?_int);?????return?"yes,return?'String'?is?OK?--by?Himi";?}? 運(yùn)行截圖:
示例代碼段5: Xcode 代碼:
?
#if?(CC_TARGET_PLATFORM?==?CC_PLATFORM_ANDROID)?//判斷當(dāng)前是否為Android平臺(tái)?????JniMethodInfo?minfo;??????????bool?isHave?=?JniHelper::getStaticMethodInfo(minfo,?????????????????????????????????????????????????"com/ai/ommr/OhMonsterMR4Android",???????????????????????????????????????????????????"rtnActivity",????????????????????????????????????????????????????"()Ljava/lang/Object;");????????jobject?jobj;?????if?(isHave)?{????????jobj?=?minfo.env->CallStaticObjectMethod(minfo.classID,?minfo.methodID);?????}?????CCLog("正確獲取到?jobj");????????????isHave?=?JniHelper::getMethodInfo(minfo,??????????????????????????????????????????????????"com/ai/ommr/OhMonsterMR4Android",????????????????????????????????????????????????????"nostaticFun",?????????????????????????????????????????????????????"()V");??????????if?(isHave)?{??????????minfo.env->CallVoidMethod(jobj,?minfo.methodID);?????}??????CCLog("jni-java函數(shù)執(zhí)行完畢");?#endif?Java 代碼:
?
??public?static?Activity?actInstance;?public?static?Object?rtnActivity()?{?????return?actInstance;?}??public?void?nostaticFun()?{?????Log.e("Himi",?"no?static?Function?is?OK?-?By?Himi");?}? 運(yùn)行截圖:
本文轉(zhuǎn)自 xiaominghimi 51CTO博客,原文鏈接:http://blog.51cto.com/xiaominghimi/908818,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。