Cocos2d-js: C++ 调用java 代码
来源:互联网 发布:o reilly 知乎 编辑:程序博客网 时间:2024/06/07 02:19
前言
对于Cocos 这一块,完全是个菜鸟,虽然很多看不懂,但做项目需要用到,没办法只能自己慢慢摸索前进了. (•̀ᴗ•́)و ̑̑
环境:Cocos2d-js 、Android
Cocos2d 里面调用Java 方法操作,在制作Android版本时,需要使用C++调用java的函数,这个通过jni实现.
下面是 总结的几种 示例,记录一下,以后忘了还可以温故一下 ╰( ̄▽ ̄)╭。
C++ 调用 java :
#inclde "jnixxx.h" // 头文件#ifder WIN32#else#define CLASS_NAME "com/xxx/xxxx/xxActivity" // 需要调用的完整类名extend "C"{// 调用 java 返回值为 String 方法std::string jniGetTest(){ std::string strTest; JniMedhodInfo info; bool ret = JniHelper:: getStaticMethodInfo(info, CLASS_NAME, "getTest", "()Ljava.lang/String;"); // 调用java 的静态方法 getTest(); jstring jsStr; if(ret){ jsStr = static_cast<jstring>(info.env->CallStaticObjectMehod(info.classID, info.methodID)); const char* s = info.env->GetStringUTFChars(jsStr, NULL); if(s){ strTest; info.env->ReleaseStringUTFChars(jsStr, s); } info.env->DeleteLocalRef(info.classID); return strTest; } }// 调用 java 返回值为 boolean 方法bool jniIsNetWork(){ JniMethodInfo info; bool ret = JniHelper::getStaticMehodInfo(info, CLASS_NAME, "isNetWork", "()Z"); // 调用java 的静态 boolean 方法 isNetWork(); bool isConnect; if(ret){ isConnect = static_cast<bool>(info.env->CallStaticObjectMethod(info.classID, info.methodID)); info.env->DeleteLocalRef(info.classID); } return isConnect; }// 调用 java 返回值为 void 方法void jniGetLogin(){ JniMethodInfo info; bool ret = JniHelper::getStaticMehodInfo(info,CLASS_NAME, "onLogin", "()V"); // // 调用java 的静 void 态方法 isNetWork(); if(ret){ info.env->CallStaticObjectMehtod(info.classID, info.methodID); info.env->DeleteLocalRef(info.classID); } }}#endif
java代码:
// 返回 String 类型 方法public static String getTest(){ String str = "getTest"; return str;}// 返回 boolean 类型 方法public static boolean isNetWork(){ boolean isConnect = false; return isConnect;}// void 类型 方法public static void onLogin(){ startActivity(this, new Intent(this, LoginActivity,class));}
0 0
- Cocos2d-js: C++ 调用java 代码
- Cocos2d-JS 调用Java
- Cocos2d-js 3.0 jsb环境调用底层Objective-C代码
- Jni调用,cocos2d.x调用java代码
- JS调用Java代码
- cocos2d-js 安卓环境,如何用js代码直接调用java函数
- cocos2d js 调用object-c 方法
- cocos2d-x 中多线程的c/c++代码通过JNI调用java代码
- cocos2d-x 中多线程的c/c++代码通过JNI调用java代码
- cocos2d-x 中多线程的c/c++代码通过JNI调用java代码
- cocos2d-x 中多线程的c/c++代码通过JNI调用java代码
- C调用java代码
- C调用java代码
- java 调用C代码
- c代码调用java代码
- Cocos2d-x调用Java最终实例代码
- Cocos2d-x调用Java最终实例代码
- Java中调用js代码
- Android打开微信本地数据库详细步骤一
- [ZJOI2006物流运输]DP+Dijkstra
- Jenkins 集成 Sonar
- 2.tcpdump(2)
- 全景拼接
- Cocos2d-js: C++ 调用java 代码
- TextView
- 【R】CentOS7下Rstudio实践初探及遇到的问题 二(连接hive)
- phpstorm支持ECMAscript6
- Android 5.0 开机横屏修改
- Android系统:当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- 究竟啥才是互联网架构“高并发”
- 史蒂夫乔布斯名言录
- 如何在支持java开发的eclipse上面下载支持java web开发的插件