cocos2d-x中的Jni使用(C++与Andriod方法互调)
发布时间:2020-12-14 20:32:43 所属栏目:百科 来源:网络整理
导读:原文链接:http://www.cnblogs.com/hewei2012/p/3376616.html 前提条件: 1.操作的游戏工程和cocos2d_x游戏引擎是一个目录的 2.跟jni相关的C++代码文件放在proj.androidjnihellocpp目录下,每加一个cpp文件,都需在proj.androidjni的Andriod.mk文件中添加
原文链接:http://www.cnblogs.com/hewei2012/p/3376616.html
前提条件: 1.操作的游戏工程和cocos2d_x游戏引擎是一个目录的 2.跟jni相关的C++代码文件放在proj.androidjnihellocpp目录下,每加一个cpp文件,都需在proj.androidjni的Andriod.mk文件中添加: LOCAL_SRC_FILES := hellocpp/main.cpp hellocpp/test.cpp <--为新添加的 ... 3.跟jni相关的java代码文件放在proj.androidsrcjtSwordsMen目录下
一、C++调用Andriod接口 1.定义一个.h文件“test.h”,内容: extern "C" //因为jni将java代码转过来是c的,所以C++引用得加上 { void showExitPt(const char *title,char *msg); //showExitPt将调用Andriod工程中实现的方法 } 2.定义一个.cpp文件“test.cpp”,内容: #include <jni.h> #include platform/android/jni/JniHelper.h" ... 表示proj.androidsrcjtSwordsMenJniTestHelper.java的,在该文件里有showTipDialog的实现 #define CLASS_NAME "jt/SwordsMen/JniTestHelper" 3.java实现,代码如下,具体代码最后一定提供 定义一个JniTestHelper.java文件,内容: private static void showTipDialog(final String title,255); line-height:1.5!important">final String text) { Message msg = mHandler.obtainMessage(); msg.what = SwordsMen.SHOW_DIALOG; DialogMessage dm = new DialogMessage(); dm.title = title; dm.msg = text; msg.obj = dm; msg.sendToTarget(); } |