4.jni_java调用c++中的方法

环境说明:

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)里的内容;

扫描二维码关注公众号,回复: 570061 查看本文章

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中的方法”中

代码c++调用java中方法的逻辑在“jni_c++调用java中的方法”中

6.       c++的代码写好后,使用Cocos2d console中的“compile”指令,重新生成一下android项目。----

1.       AppActivity.java

projects\Test0610\frameworks\runtime-src\proj.android\src\org\cocos2dx\javascript

中添加供调用的c++的方法的入口:(有native关键字)

    public static native void sayHello(); 

public static native int sayHello2(String s,int a);

  1. jsb_test_function.hpp文件中添加java调用c++的方法:

extern "C"

{

   void Java_org_cocos2dx_javascript_AppActivity_sayHello(){};

   jint Java_org_cocos2dx_javascript_AppActivity_sayHello2(JNIEnv *env, jobject thiz,jstring info,jint a){};

}

 

猜你喜欢

转载自banshaotang.iteye.com/blog/2078502