搭建環境的步驟在根目錄的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發布有點太倉促了!