(转载请注明原文地址:http://write.blog.csdn.net/postedit/21968487)
平台:ubuntu + android
cocos2d版本:3.0rc
搭建环境的步骤在cocos2d3.0rc的根目录的README.md中写得简明扼要,绝不脱泥带水,但我遇到了不少问题,网上四处搜索找不到解决办法,这里把我遇到的几个问题和解决办法分享一下。
官方给出的安装步骤:
1. Download the code from [cocos2d download site][4]
2. Run `setup.py`
3. Run the `cocos` script
Example:
$ cd cocos2d-x
$ ./setup.py
$ source FILE_TO_SAVE_SYSTEM_VARIABLE
$ cocos new MyGame -p com.your_company.mygame -l cpp -d /home
$ cd /home/MyGame
### Build and run new project for android ###
$ cocos run -p -j 4 android
问题一:
./setup.py 运行这一步时,需要把环境变量创建好,为方便必须写入.bashrc中,你总不想每次启动个shell都创建这么多变量吧。
NDK_ROOT=
SDK_ROOT=
ANT_ROOT=
问题二:
运行cocos就出错(plugins = parse_plugins()这句提示错误),开始以为脚本cocos.py有问题 ,发现不对,触控的工程师总不会发布一个错误的脚本吧?! 猜来猜去,可能是python版本的问题,我的unbutu上安装的python的版本是2.6.5,比较老。索性安装了一个最新的版本3.1.2的,心想这下肯定行了吧,安装后一测试,不光cocos.py运行不了,setup.py也不行了,你妹的。还是装一个比较大众化的吧,用了版本2.7.6,一切正常。现在明白了,python的版本兼容性原来这么差!
问题三:
编译时,提示找不到gcc工具链 (Couldn't find the gcc toolchain)。
再晕,明明设置好了NDK_ROOT=/home/CORPUSERS/28848747/android/android-ndk-r8b
而且在cocos2d-2x时代,这都是经过实战检验的,为什么现在不行了!
查看build_native.sh脚本,发现:
if os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.8")):
os.environ['NDK_TOOLCHAIN_VERSION'] = '4.8'
print "The Selected NDK toolchain version was 4.8 !"
elif os.path.isdir(os.path.join(ndk_root,"toolchains/arm-linux-androideabi-4.7")):
os.environ['NDK_TOOLCHAIN_VERSION'] = '4.7'
print "The Selected NDK toolchain version was 4.7 !"
else:
print "Couldn't find the gcc toolchain."
exit(1)
我的NDK版本太老了,r8b的工具链的最高版本才4.6,去安卓网站http://developer.android.com/tools/sdk/ndk/index.html#Installing下一个最新的版本r9d吧!
修改NDK_ROOT=/home/CORPUSERS/28848747/android/android-ndk-r9d (别忘了source ~/.bashrc,让环境变量生效)
再次编译,一切正常,3.0rc的配置真是多灾多难啊,我记得版本2.x时,我基本没费什么事就搞颠了!
问题四:
cocos run -p -j 4 android
这个命令也有问题,我开始看着就别扭,运行一看果然有错误:cocos compile: error: argument -p/--platform: expected one argument
应该改为:cocos run -j4 -p android
另外,如果编译apk时,提示错误:
Android platform not specified, searching a default one...
No valid android platform found, will not generate apk.
此时需要加上平台编号,如:
cocos run -p android --ap 19
指定使用的android平台版本为19
详细的cocos命令使用说明可以查看帮助 cocos --help
在cocos2dx 3.0中,工程编译时会检查sdk的platforms目录下有没有android-xx目录,xx为版本号,范围10 ~ 19。所以,如果没有android-xx目录, 需要创建一个空目录即可。
问题五:
当运行setup.py后,.profile中记录了环境变量COCOS2D_CONSOLE_ROOT
如果想要更改此环境变量,必须首先手动删除:
unset COCOS2D_CONSOLE_ROOT
然后运行新的setup.py,再运行命令
source /home/....../.profile 使其生效。
可以在命令行通过export查看环境变量的当前值。