今天,當我將一個包含jni的Android工程從Windows電腦上拷貝到Ubuntu電腦上之后,編譯它的時候出現以下錯誤:
.../android-ndk/ndk-build clean
Invalid attribute name:
package
.../android-ndk/build/gmsl/__gmsl:512: *** non-numeric second argument to `wordlist' function: ''. Stop.
問題的關鍵是:兩台機器上的環境都是正常可用的,且工程在Windows下可以正常編譯。
在網絡上搜索一圈之后,大概是說,AndroidManifest.xml中沒有指定sdk版本,但是我的AndroidManifest.xml中是指定了sdk的:
<uses-sdk android:minSdkVersion="17"
android:targetSdkVersion="17"
android:maxSdkVersion="17" />
這時候,我懷疑可能是Windows和Linux之間的文本文件兼容性問題導致上面的錯誤的,於是調用dos2unix:
dos2unix AndroidManifest.xml
這么做之后,問題解決了。