博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中简单的JNI使用,C++调用JAVA
阅读量:5036 次
发布时间:2019-06-12

本文共 805 字,大约阅读时间需要 2 分钟。

Cocos2d—X调用java

一、C++端

1、在.h文件中包含对应的文件

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include 
#include "platform/android/jni/JniHelper.h"#include
#endif
2、在.cpp文件里,你需要调用的地方加入以下这段代码

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)	   JniMethodInfo   t;	   if(JniHelper::getStaticMethodInfo(t,"com/cysoft/common/Common","share","()V"))	   {		   t.env->CallStaticVoidMethod(t.classID,t.methodID);		   t.env->DeleteLocalRef(t.classID);	   }#endif
解释下上面的代码,这段代码主要是在C++中调用了Java里面的一个静态方法

1)#if和#endif表示是在Android平台下执行

2)"com/cysoft/common/Common",表示调用包名为com.cysoft.common下的Common类中的share方法,"()v"表示,括号里空的表示无参,V即void,表示无返回值的意思,想要知道更多的带参数带返回值的写法,可以参考:

3)里面的it语句主要是判断一下这个方法是存在,内部就是调用Java里的静态方法,调用完后删除对应的引用

另外,我也参考了这篇文章:

转载于:https://www.cnblogs.com/yuyb1990/archive/2012/09/13/2942024.html

你可能感兴趣的文章
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
12th week blog
查看>>
dijkstra (模板)
查看>>
python小记(3)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
Python学习-文件操作
查看>>
正则表达式()、[]、{}的区别
查看>>
第十二周作业
查看>>
Socket开发框架之框架设计及分析
查看>>
oracle.encode('gbk',errors='ignore').decode('gbk')
查看>>
kexec on openwrt - linux boots linux, kernel boots kernel on openwrt
查看>>
【练习赛2补题】zoj 2734 Exchange Cards 【DFS】
查看>>