cocos2dx 使用jni实现java调用c++
来源:互联网 发布:高中生物题库软件 编辑:程序博客网 时间:2024/05/11 20:57
项目打包android版本时,需要添加监听返回键的事件处理,即:当按下返回键弹出确认对话框,选择是,退出游戏,终止进程。这里需要处理进程的结束以及soket的断开,这就需要用到c++那边的代码,比如Director::getInstance()->end(); pc_client_destroy(my_pomelo_client);等。所以我们需要实现一个方法,用来在java中调用c++。
1.java中方法实现:
例:
public class Cocos2dxActivity extends NativeActivity{.......public static native void exitGame(); // 这里必须是native函数,因为要链接c++的实现.......}
2.c++中方法实现
在*.cpp中
extern "C"{ JNIEXPORT void JNICALL Java_com_qmx_road2god_Cocos2dxActivity_exitGame(JNIEnv* env, jobject thiz) { Director::getInstance()->end();pc_client_destroy(my_pomelo_client); }}
函数名说明:com_qmx_road2god对应java的包名com.qmx.road2god,Cocos2dxActivity对应类名,exitGame对应函数名。JNIEnv* env, jobject thiz是固定的参数,可以在后面加上自己函数的参数,和java中函数参数保持一致即可。
3.最重要的一步
在java中调用exitGame()前加上这一句:static { System.loadLibrary("cocos2dcpp"); } //coco2dcpp是编译c++后生成的链接库名,可以在android.mk中看到这样一句话
LOCAL_MODULE_FILENAME :=libcocos2dcpp,lib后面的名字就是链接库名。
例:
public class Cocos2dxActivity extends NativeActivity{static { System.loadLibrary("cocos2dcpp"); } // 可以在这里调用@Overrideprotected void onCreate(Bundle savedInstanceState) {结束。
我看了好多文章,都讲的很详细,但唯独没有最后一个步骤,而我如果没有最后一个步骤,会提示No implementation found for native Lcom/qmx/road2god/Cocos2dxActivity;.exitGame()v之类的错误,这就是链接不到c++实现。我不太了解别人是如何实现这一步骤的,如果有谁知道,可以告诉我,不胜感激!
- cocos2dx 使用jni实现java调用c++
- cocos2dx 使用jni实现java调用c++
- JNI编程中C调用Java实现。
- jni实现C语言调用Java程序
- JNI 实现java 与 c ++ 调用
- JNI实现Java调用C/C++语言
- 用JNI实现java调用C
- 使用JNI,让java调用c代码
- Java调用C++: JNI的使用入门
- jni的使用(java调用c++)
- java 使用JNI调用C语言
- jni 使用java 调用C代码
- jni-使用c代码调用java文件
- Java使用JNI调用C/C++方法
- [cocos2dx]在cocos2dx中通过Jni实现Java与C++的互相调用(一)
- [cocos2dx]在cocos2dx中通过Jni实现Java与C++的互相调用(二)
- 使用JNI实现java调用c++
- Java调用C JNI
- 【python系列】使用 BeautifulSoup 获取 meta 信息
- 鼠标点击控件a显示控件b 点击其他地方再隐藏控件b
- centos 采用yum 安装nginx
- HDU3016 Man Down
- linux下nginx+php+mysql环境搭建
- cocos2dx 使用jni实现java调用c++
- Linux下MySQL的启动与停止
- 随机指示变量(Indicator Random Variables)
- 【C++学习笔记】10_C风格字符串
- mybatis配置文件xxxx.xml中缺失返回类型的后果
- EOFException 异常解决方法
- 几个简单的HBase的Java程序(待续)
- 【C语言复习(二十七)】野指针和内存操作分析
- 隐马尔可夫模型