OSX系统编译cocos2dx andriod工程
所用版本如下
cocos2dx 版本2.14
NDK版本 android-ndk-r9
OSX 10.8.5
在官网下载andriod SDK 目前为止的版本为adt-bundle-mac-x86_64-20130917
ADT已经自带了Eclipse而且在OSX上不需要特殊安装,只需要拷贝到自定义的目录,打开Eclipse就可以了,看说明文档是说第一次打开就会自己设定相关环境变量等等,如果要改变目录,要改相应的设置。总之我第一次打开之后并没有再次修改路径。建议解压完毕后copy到指定目录再打开Eclipse
官网下载NDK 目前为止的版本是android-ndk-r9-darwin-x86_64.tar.bz2
解压了之后也不需要特别设置,说明文档以前似乎是需要安装的,后来在后面的版本中去掉了,也是拷贝到自定义的目录就可以了。
cocos2dx编译成安卓工程需要设置NDK_ROOT的环境变量,在终端中可以用VI打开 ~/.bash_profile(没有此文件可以手动创建一个) 加入
export NDK_ROOT="你设定的目录即可"
然后关掉终端再打开就可以识为这个变量了。
然后将cocos2dx andriod工程的build_native.sh丢到终端中运行就可以了。。注意修改下此文件的权限,增加执行权限
chmod u=rwx ./build_native.sh
我本地的build_native.sh文件好像默认不带执行权限,结果无法执行
开始编译之后表示一切配置成功了。如果提示找不到NDK_ROOT就再检查下路径啊拼写什么的。
在终端中执行echo $NDK_ROOT 能打印出你设置的路径,并执行 cd $NDK_ROOT 能进入指定文件夹就表示设置成功了
注意:
R9版本的NDK编译cocos2dx2.14会有些字符串格式化的报错 如下:
CCLog(const char*(p)); 类似这种语法会有格式化安全机制引起的错误
要改成CCLog(“%s”,const char*(p));这样才可以
听说上一版本的NDK不会有问题,但是本人懒得去下载又不想改变cocos2dx本来的文件 ,怕版本升级引发问题,所以网上查了一下关掉了这个安全机制的错误警告
在安卓工程 jni/Application.mk 在APP_CPPFLAGS后面加入 -Wno-error=format-security 如下
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -Wno-error=format-security
感谢万能的谷歌以及网友拯救了我