今天,当我将一个包含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
这么做之后,问题解决了。