文章撰寫日期︰2013/12/19 10:28 cocos2d-x使用版本︰2.1.3 NDK使用版本︰r8e
一、問題
今天在試著NDK編譯別人的案子時,遇到
Invalid attribute name:
package
make: Entering directory `/Users/lp43/cocos2d-x2.1.3/workspace/38_CanShot/Source/proj.android'
/Users/lp43/Android/adt-bundle-mac/android-ndk-r8e/build/gmsl/__gmsl:512: *** non-numeric second argument to `wordlist' function: ''. Stop.
的問題。
二、解決辦法
上網爬文後,網友們說問題是來自於AndroidManifest.xml檔的問題。
原本這個檔是在windows上編輯,
但現在我要在mac的環境中編譯,
因此把windows上獨有的\r\n也編譯進來,
造成NDK無法在mac上順利編譯。
解決辦法有3種︰
1.使用vim工具將AndroidMenifest.xml的filetype設成unix。
用 vim 打開 AndroidManifest.xml,在命令模式下输入"set filetype=unix",保存退出即可。2.直接更改NDK裡__gmsl檔的512行(路徑在/android-ndk-r8e/build/gmsl/__gmsl)
將原本512的int_encode = $(__gmsl_tr1)$(wordlist 1,$1,$(__gmsl_input_int))改成
int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))也可以。
3.使用指令一鍵更改AndroidManifest.xml的編碼格式
如果你跟我一樣是使用mac,可以安裝一套軟體叫dos2Unix,
然後在terminal裡Android專案目錄打上
$dos2unix AndroidManifest.xml
也可以解決問題。
我選擇第2、3種解決方案。
參考來源
1. mingming-killer2. stackoverflow
3. Google Group
沒有留言 :
張貼留言