环境说明:
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中的方法”中
代码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);
- 在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){};
}