編輯:關於Android編程
搭建環境的步驟在根目錄的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發布有點太倉促了!
綜述對於MVP (Model View Presenter)架構是從著名的MVC(Model View Controller)架構演變而來的。而對於Android應用的開
Android特效專輯(十)——點擊水波紋效果實現,邏輯清晰實現簡單 這次做的東西呢,和上篇有點類似,就是用比較簡單的邏輯思路去實現一些比較好玩的
在andorid端使用sqlite數據庫是經常的事,通常來說都是對每個屬性對應一個字段,然後分字段的來讀取,但是今天我要說的不是這樣的。我們通過對象序列化來存取。因為一個
使用了RecyclerView嵌套RecyclerView的方案。購物車的第一個界面為RecyclerView,每個Item裡面包含一個店鋪。在Item中使用Recycl