3.jni_c++调用java中的方法
环境说明:
1. 引擎使用的是cocos2d-js-v3.0-beta版本
2. c++工具使用的是vs2012
3. 使用v3.0版本可以直接使用Cocos2d console创建android项目,官方教程:
http://www.cocos2d-x.org/docs/manual/framework/html5/v2/cocos-console/zh
创建好后,使用Cocos2d console中的“compile”指令,生成一下android项目:
cd directory/to/project
cocos compile -p android
然后使用eclipse导入android项目(projects\Test0610\frameworks\runtime-src\proj.android)
4. 源码运行方法:
使用如上方法创建好项目,将js文件覆盖项目根目录下的src目录(projects\Test0610\src)里的内容;
将c++中的文件覆盖“\frameworks\runtime-src\Classes”目录里的内容。
将java文件覆盖android项目(frameworks\runtime-src\proj.android\src\org\cocos2dx\javascript)里的内容
修改android项目“projects\Test0610\frameworks\runtime-src\proj.android\jni”目录下的“Android.mk”文件,添加上新加的sb_test_function.hpp:
LOCAL_SRC_FILES := hellojavascript/main.cpp \
../../Classes/jsb_test_function.hpp \
../../Classes/AppDelegate.cpp
5. 代码js调用c++中方法的逻辑在“jsb_js调用c++中的方法”中
代码c++调用js中方法的逻辑在“jsb_c++调用js中的方法”中
6. c++的代码写好后,使用Cocos2d console中的“compile”指令,重新生成一下android项目。----
1. 在jsb_test_function.hpp文件中添加c++调用java的方法:
void test_call_java_function(){}
需要引入jni相关的头文件:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#endif
2. 修改android里的“AppActivity.java”文件,添加2个静态方法供c++调用:
public static void openShareBoardStatic() {}
public static int openShareBoardStatic2(int a, String s) {}