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) {}

相关推荐