在MAC系统下搭建Cocos2d-x的Android开发环境
1、进入MAC系统的个人目录,新建目录“Dev”作为开发目录
2、下载cocos2d-x 3.3,选择下载cocos v1.0 Preview For Mac版本下载地址:http://cn.cocos2d-x.org/download/
3、下载Android NDK,由于此处最新的android-ndk-r10c-darwin-x86_64.bin在编译时会出现一些问题(该问题在第5步骤中有描述),所以推荐下载android-ndk-r9d-darwin-x86_64.tar.bz2,下载地址https://dl.google.com/android/ndk/android-ndk-r9d-darwin-x86_64.tar.bz2;之后解压缩
如果是android-ndk-r10c-darwin-x86_64.bin的话,需要打开终端,输入命令解压缩bin文件
>> chmod a+x android-ndk-r10c-darwin-x86_64.bin
>> ./android-ndk-r10c-darwin-x86_64.bin
4、打开终端,输入命令vim .bash_profile打开.bash_profile配置环境变量
增加ANDRIOD_SDK_ROOT,NDK_ROOT两个环境变量
export ANDROID_SDK_ROOT=/Users/username/Dev/adt-bundle-mac-x86_64-20140702/sdk
export PATH=$ANDROID_SDK_ROOT:$PATH
export NDK_ROOT=/Users/username/Dev/android-ndk-r10c
export PATH=$NDK_ROOT:$PATH
5、进入新项目的proj.android目录,在终端中输入命令:cocos run -p android -m release
在编译过程中出现错误:
error:/Applications/Cocos/frameworks/cocos2d-x/external/curl/prebuilt/android/armeabi/lbcurl.a(sha512-armv4.o):requires unsupported dynamic reloc R_ARM_REL32; recompile with -fPIC
error:relocation overflow in R_ARM_THM_CALL
尝试了http://discuss.cocos2d-x.org/t/failed-android-build-error-relocation-overflow-in-r-arm-thm-call/17932一文中提到重新编译libcurl库的方法和在Android.mk或Application.mk中增加LOCAL_ARM_MODE := arm的方法都仍旧存在相同的问题。用NDK-r9d版本代替NDK-r10c版本编译后就能编译成功
在终端中输入命令:cocos run -p release -m release,编译成功
6、编译成功后,就可以打包APK,会提示你输入keystore文件的绝对或相对路径,如果在proj.android目录下没有keystore文件,则需生成一个,在终端中输入命令:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
打包APK时,报来一个错:/Users/xxxx/Downloads/adt-bundle-mac-x86_64/sdk/tools/zipalign: No such file or directory.
原因是zipalign文件位于sdk/build-tools目录下,解决的方法是在环境变量PATH中增加sdk/build-tools
PATH=$PATH:/Users/xxxx/Downloads/adt-bundle-mac-x86_64/sdk/build-tools