cocos2dx3.0rc android平台搭建开发环境纠错备忘录

平台:linux + android

cocos2d版本:3.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版本的问题,我的unbutun上安装的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

呵呵,有点无语了吧,看得出来3.0rc发布有点太仓促了!


cocos2dx3.0rc android平台搭建开发环境纠错备忘录,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。