我正在Eclipse-android中构建一个c项目,并收到以下错误:
这是一个ndk构建错误(独立于我的代码)
/Users/eladb/MyWorkspace/android-ndk-r8e/build/gmsl/__gmsl:512: *** non-numeric second argument to 'wordlist' function: ''. Stop.
尝试
android-ndk-r8b
android-ndk-r8e
我该如何解决这个问题?
答案 0 :(得分:26)
由于r8d NDK
没有正确地从android:minSdkVersion
获取AndroidManifest.xml
属性,这是一个众所周知的问题。
要解决该问题,请将文件/ android-ndk-r8d / build / gmsl / __ gmsl的第512行更改为:
int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))
答案 1 :(得分:11)
在AndroidManifest中,添加以下行:
<uses-sdk android:minSdkVersion="3" />
这解决了我的问题。通常在导入下载的项目时会得到这个,因为新生成的项目没有那种错误。
有关信息,此问题也可以从命令行重现。
答案 2 :(得分:1)
尝试将文件托架控件(\ r \ n)更改为linux格式(\ n) 为了解决这个问题,我在vi中编辑了文件并执行了“set filetype = unix”
答案 3 :(得分:0)
看起来ndk-build中的XML解析代码对空格敏感(截至r8e。)当我的清单中有以下行时,我收到此错误:
<uses-sdk android:minSdkVersion ="10" android:targetSdkVersion="11" />
当我用以下行替换它时,问题就消失了,删除了minSdkVersion和=符号之间的空格:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="11" />
呃。
是否应修补ndk(如接受的答案中所述)或在应用程序端执行变通方法,这是有争议的。我选择了解决方法,因为我在一个团队中工作,我们需要构建几个不同的环境,包括一个共享CI服务器,我不想为每个环境和每个新开发人员修补ndk。如果你单独工作,接受的答案可能更合适,因为它也将在未来的项目中得到修复。
答案 4 :(得分:0)
刚刚陷入同样的问题
&#34; .... android-ndk-r12b / build / gmsl / __ gmsl:512:***`wordlist&#39;的非数字第二个参数功能:&#39; 18e&#39;。停止&#34;
如果你得到这个18e,e可以是任何东西,因为在Application.mk你添加了一封信给APP_PLATFORM
&#34; APP_PLATFORM:= android-18e&#34; 它应该是 &#34; APP_PLATFORM:= android-18&#34;
最后没有任何字母,这解决了错误的类型,因为我不知道何时以及如何添加,因为我现在几周没有打开这个文件,STRANGE!
答案 5 :(得分:0)
将您的NDK更新为r15b或后者。对我而言,它的工作。