1.下载NDK并解压到一个目录下,如:G:\work\android-ndk-r8b
2.安装cygwin(1.7版本以上,csdn上可以下载离线包:http://download.csdn.net/detail/tzhang1119/2921717)
选择安装内容的时候,选择Devel(点击列表中Devel,将后面的Default改为Install),其余默认即可
3.配置cygwin
在命令行中进入cygwin目录,并执行cygwin.bat,如果你不是用Administrator账号登录的系统,那么会在cygwin\home\文件夹中生成一个以你的登录名命名的新的文件夹。
修改新生成文件夹中的“.bash_profile ”文件,用UE或editplus等文本编辑器打开,在最后增加:
NDK_ROOT=/cygdrive/G/work/android-ndk-r8b
export NDK_ROOT
然后保存关闭。
4.用UE打开cocos2dx安装目录下的create-android-project.bat,修改
6.打开cygwin32.bat,进入刚才建立的工程文件夹的proj.android目录,命令类似于:
cd /cygdrive/G/work/myapp/cocosworkprj/cocos2d-2.0-x-2.0.3/test/proj.android
运行build_native.sh:
./build_native.sh
执行完成后会在proj.android\libs\armeabi目录下生成需要的.so文件
7.以上建立的工程是默认设置的,不支持Box2D,CocosDenshion等其他库,如果需要支持其他库,参考samples\TestCpp\proj.android\jni下的Android.mk和Application.mk,把这两个文件替换自己工程proj.android\jni目录下的同名文件,把:
LOCAL_SRC_FILES := testcpp/main.cpp
这一句改成类似以下(列举出所有需要编译的cpp文件):
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
因为create-android-project.bat建立的工程中,android下的main.cpp在jin\hellocpp目录下
LOCAL_MODULE_FILENAME := libtestcpp 这一句是设置最终输出的so文件的名字,也可以自由更改
$(call import-module,samples/TestCpp) 这句删除
8.在eclipse里右键新建一个project,选择android下的android project from existing code,选择刚才建立工程的proj.android目录
9.拷贝cocos2dx安装目录的cocos2dx\platform\android\java\src\org\cocos2dx\lib文件夹下的所有文件到自己工程的proj.android\src\org\cocos2dx\lib目录下
10.找到主activity中的:
static {
System.loadLibrary("game");
}
把load的库名改成生成的so文件的名字,即LOCAL_MODULE_FILENAME := libtestcpp这句指定的名字去掉前面的lib前缀,比如LOCAL_MODULE_FILENAME指定的名字是libtestcpp
则改为:
static {
System.loadLibrary("testcpp");
}
11.在eclipse中运行程序