cocos2dx C++调用android

cocos2dx C++调用android,第1张

概述 java部分:一个类,一个静态方法,一个实例方法publicclassAppActivityextendsCocos2dxActivity{publicstaticContextmContext;//记录类实例@OverrideprotectedvoidonCreate(BundlesavedInstanceState){mContext=AppActivity.

 

java部分: 一个类,一个静态方法,一个实例方法

public class AppActivity extends Cocos2dxActivity{    public static Context mContext;  //记录类实例    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {                mContext = AppActivity .this;            }    // c++中調用的方法    public static Object rtnActivity() {        System.out.println("----------rtnActivity");        return mContext;    }    public voID showAD() {        System.out.println("showAD 成功");    }}

  

C++部分:

#include "cocos2d.h"//将所有代码包含在预编译块里,防止找不到<jni.h>报错USING_NS_CC;#include <vector>using namespace std;#include "JniTest.h"#if (CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)#include <jni.h> //这个文件在ndk中,所以放在预编判断块中,不然编译器找不到这个文件会报错#include "platform/androID/jni/JniHelper.h"JniTest::Jnitest(){}JniTest::~Jnitest(){}//请求广告	voID JniTest::ddcallAd()	{		//定义Jni函数信息结构体;		JniMethodInfo minfo;		//返回一个bool值表示是否找到此函数;		bool isHave = JniHelper::getStaticmethodInfo				(minfo,"org/cocos2dx/lua/MergeAppActivity","rtnActivity", "()Ljava/lang/Object;");		jobject activityObj;		if (isHave) {		//CallStaticObjectMethod调用java函数,并把返回值赋值给activityObj			activityObj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);			isHave = JniHelper::getmethodInfo(					minfo,"org/cocos2dx/lua/MergeAppActivity","showAD","()V");			if (!isHave)			{				cocos2d::log("jni:showAD 函数不存在;");			}			else			{				//调用displayWebVIEw函数,并传入参数				minfo.env->CallVoIDMethod(activityObj, minfo.methodID);			}		}	}#endif

先getStaticmethodInfo找到静态方法,

CallStaticObjectMethod执行静态方法得到类实例,

getmethodInfo再找实例方法,

CallVoIDMethod再调用实例方法。

 

总结

以上是内存溢出为你收集整理的cocos2dx C++调用android全部内容,希望文章能够帮你解决cocos2dx C++调用android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1015606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存