1、修改${cocos2dx_loc}/template/android目录下的build_native.sh文件:
添加NDK路径如下:
在检查NDK_ROOT是否存在的代码
if [ -z "${NDK_ROOT+aaa}" ];then
echo "please define NDK_ROOT"
exit 1
fi
之前,添加
NDK_ROOT="/cygdrive/${android_ndk_loc}",如NDK_ROOT="/cygdrive/d/Android/android-ndk-r8"
这里是使得模板脚本中本身就设置了NDK的路径,免得生成工程后还需要修改,一劳永逸。
注意,必须在检查NDK_ROOT是否已定义之前添加其路径(其实检查也可以去掉了。。。)。
2、修改${cocos2dx_loc}目录下的create-android-project.bat,如下:
(1)set _CYGBIN=${cygwin_loc}/bin,如set _CYGBIN=d:\cygwin\bin
(2)set _ANDROIDTOOLS=${android_sdk_loc}/tools,如set _ANDROIDTOOLS=d:\Android\android-sdk\tools
(3)set _NDKROOT=${android_ndk_loc},如set _NDKROOT=d:\Android\android-ndk-r8
归结一句话:设置本地化。
3、在${cocos2dx_loc}目录下,双击运行create-android-project.bat,生成Android工程:
输入工程包名以及工程名
然后输入选取的SDK版本
完了就生成一个工程文件夹${project_loc}=${cocos2dx_loc}/${project_name},如d:\cocos2d-2.0-x-2.0.2\Cocos2dxTest,其中Android工程文件夹是${project_loc}/proj.android,如d:\cocos2d-2.0-x-2.0.2\Cocos2dxTest\proj.android
自此,工程生成完毕。
4、修改Android的NDK中的一个静态库libgnustl_static.a的权限:
静态库路径为${android_ndk_loc}/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a,如D:\Android\android-ndk-r8\sources\cxx-stl\gnu-libstdc++\libs\armeabi\libgnustl_static.a
可以在cygwin中,进入该库所在路径,修改该库权限,建议修改为755:
做法原因:后面用工程中的build_native.sh编译JNI库的时候,会从该路径复制此类库;但NDK中设置该类库的权限是000,即啥都不能搞,libgame.so会编译失败;所以提前把这类库权限改为755,一劳永逸。
5、运行Android工程文件夹中的build_native.sh:
在cygwin下,进入${project_loc}/proj.android目录中,运行该脚本:
即可成功生成libgame.so动态库:
http://hi.baidu.com/ralphcai/item/eb5f2405e2ad6b24a0312dbc