Cocos2dx C++中调用java非静态函数。

Cocos2dx C++中调用java非静态函数。,第1张

概述Cocos2dx C++中调用java非静态函数。 CPP中调用JAVA中的非静态方法需要先获得Activity的对象,这是区别所在。 在AppActivity中声明一个静态变量 public static AppActivity con; 在AppActivity的create中对此变量进行赋值 @Override public void onCreate(Bundle savedIns Cocos2dx C++中调用java非静态函数

CPP中调用JAVA中的非静态方法需要先获得Activity的对象,这是区别所在。

在AppActivity中声明一个静态变量
public static AppActivity con;
在AppActivity的create中对此变量进行赋值
@OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        con = this;    }
在AppActivity中添加一个获得该对象的方法
public static Object returnActivity() {        return con;    }
在cpp中添加方法
voID HelloWorld::onClickLogin(){#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)    {        JniMethodInfo info;        jobject activityObj;        bool isHaveObj = JniHelper::getStaticmethodInfo(info,"org/cocos2dx/cpp/AppActivity","returnActivity","()Ljava/lang/Object;");        if (isHaveObj)        {            activityObj = info.env->CallStaticObjectMethod(info.classID,info.methodID);            log("jni:obj has find.");        }        else        {            log("jni:obj is null");        }        JniMethodInfo methodInfo;        bool isHaveMethod = JniHelper::getmethodInfo(methodInfo,"onClickLogin","()V");        if (isHaveMethod)         {            methodInfo.env->CallVoIDMethod(activityObj,methodInfo.methodID);        }    }#endif}
总结

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

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

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

原文地址:https://www.54852.com/web/1085644.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存