Cocos2D-X中在C++中调用JAVA的方法
Cocos2D-X中在C++中调用JAVA的方法cocos2d-x android java调用C++ -------------http://www.cnblogs.com/sevenyuan/p/3684333.html cocos2d-x中有一个JniHelper类详细使用------------------------------------------------------C++ 调用Java 必须的有关键字 native。 注释:1.Java_com_newtest2_jniHelper_SendInfo ”Java”开头 ”com_nretest2”为包名 ”jniHelper”为对应的java文件 ”SendInfo”为对应的方法 使用”_”连接2.(JNIEnv *env,jobject thiz,jstring info) 只有jstring info为自己的参数 其余两个为自带参数 -------------------------------------------------- CPP文件中(以HelloWorld为例): 1、 #include "../platform/android/jni/JniHelper.h" 2、 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台 JniMethodInfo minfo; bool isHave = JniHelper::getStaticMethodInfo(minfo, if (!isHave) { else { #endif 代码说明: 1、#if (CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID): 判断设备是否为Android设备,如果是,则执行代码到#endif为止,如果不是,则跳过此段代码; 2、JniHelper::getStaticMethodInfo (JniMethodInfo &methodinfo,const char *className,const char *methodName,const char *paramCode); 获取JAVA方法的信息,共有四个参数: 第一个参数:JniMethodInfo 类型,用于JNI的操作; 第二个参数:类的路径。本例类的路径为:"com/mycompany/jnitest/JNI_Test"。 第三个参数:方法名。注意方法名一定要定义为static。对应上图的方法名为:"testFunWithInt"。
第四个参数:(参数)返回值。括号内为传入的参数类型,括号后面为返回值类型。 本例中的(参数)返回值为:"(I)V"。 之后经过NDK编译,Eclipse导入运行,在日志中会得到如下结果: 通过修改JAVA代码,可以得到不同的结果。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |