cocos2dx通过Jni调用Android的Java
来源:互联网 发布:天天向上网络直播 编辑:程序博客网 时间:2024/05/01 19:31
- //静态函数示例2.有参数,无返回值------------------------------$$$$$$$--------------------------------
- #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
- JniMethodInfo minfo;//定义Jni函数信息结构体
- //getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
- bool isHave = JniHelper::getStaticMethodInfo(minfo,
- "com/ai/ommr/OhMonsterMR4Android", "testFunWithInt","(I)V");
- if (!isHave) {
- CCLog("jni:此函数不存在");
- }else{
- CCLog("jni:此函数存在");
- //调用此函数
- minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID,823);
- }
- CCLog("jni-java函数执行完毕");
- #endif
- // 静态函数示例2.有参数,无返回值
- public static void testFunWithInt(int _int) {
- Log.e("Himi", "静态函数示例1.有参数,无返回值;传入的参数int=" + _int);
- }
示例代码段3:
- //静态函数示例3.有参数,有返回值--------------------------------$$$$$$$--------------------------------
- #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
- JniMethodInfo minfo;//定义Jni函数信息结构体
- //getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
- bool isHave = JniHelper::getStaticMethodInfo(minfo,
- "com/ai/ommr/OhMonsterMR4Android","testFunWithIntAndRtn","(I)I");
- jint _int ;
- if (!isHave) {
- CCLog("jni:此函数不存在");
- }else{
- CCLog("jni:此函数存在");
- //调用此函数
- _int = minfo.env->CallStaticIntMethod(minfo.classID, minfo.methodID,823);
- //尝试jint是否能正常接收返回的int值
- 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函数执行完毕");
- #endif
- // 静态函数示例3.有参数,有返回值
- public static int testFunWithIntAndRtn(int _int) {
- Log.e("Himi", "静态函数示例1.有参数,有返回值;传入的参数int=" + _int);
- return _int+1000;
- }
示例代码段4:
- #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
- JniMethodInfo minfo;//定义Jni函数信息结构体
- //getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
- bool isHave = JniHelper::getStaticMethodInfo(minfo, "com/ai/ommr/OhMonsterMR4Android","testFunWithStringAndRtn","(I)Ljava/lang/String;");
- jobject jobj;
- if (!isHave) {
- CCLog("jni:此函数不存在");
- }else{
- CCLog("jni:此函数存在");
- //调用此函数
- jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID,823);
- }
- CCLog("jni-java函数执行完毕");
- #endif
- // 静态函数示例4.有参数,有返回值(String类型)
- public static String testFunWithStringAndRtn(int _int) {
- Log.e("Himi", "静态函数示例4.有参数,有返回值(String类型);int=" + _int);
- return "yes,return 'String' is OK --by Himi";
- }
示例代码段5:
Java 代码:
- #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
- JniMethodInfo minfo;//定义Jni函数信息结构体
- //getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
- 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函数执行完毕");
- #endif
- //---- 函数示例之非静态函数调用
- //(先获取个对象)
- public static Activity actInstance;//定义单例
- public static Object rtnActivity() {
- return actInstance;
- }
- //使用此对象进行调用非静态函数
- public void nostaticFun() {
- Log.e("Himi", "no static Function is OK - By Himi");
- }
- cocos2dx通过Jni调用Android的Java
- VS2010 通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- Cocos2d-x游戏开发之Cocos2dx通过JNI调用Android的Java代码(webView实例)
- 利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- [cocos2dx]在cocos2dx中通过Jni实现Java与C++的互相调用(一)
- [cocos2dx]在cocos2dx中通过Jni实现Java与C++的互相调用(二)
- Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- NativeActivity通过jni调用java层的Android API
- NativeActivity通过jni调用java层的Android API
- Android JNI通过C++调用JAVA
- Android JNI通过C++调用JAVA
- Android C 通过JNI 调用JAVA
- Android JNI通过C++调用JAVA
- Android JNI通过C++调用JAVA
- android JNI cocos2dx调用对话框
- Cocos2dx之通过JNI实现c/c++和Android的java层函数互调
- JNI: JAVA通过JNI调用另一个JAVA类的方法
- cocos2dx 与android函数的相互调用及使用jni
- 更改服务器名后crs无法启动
- 循环从数据库里面读出图片然后放置到ListView中的例子
- 敏捷开发:败则拼死相救,胜则举杯相庆
- 什么是Java的弱引用(Weak Reference)
- Windows 7 Lisp开发环境配置
- cocos2dx通过Jni调用Android的Java
- VS2010不能跳转到声明
- Powerpath and VxVM work together mechanism
- Qt发送HTTP请求
- 2013-07-23(周二)
- .net上传文件问题
- [转]一个“技术文化人”的片段感悟
- js替换字符串的所有
- JUnit