我在 Eclipse-android 中构建 ac 项目并收到以下错误:
这是一个 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
我怎样才能解决这个问题?
我在 Eclipse-android 中构建 ac 项目并收到以下错误:
这是一个 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
我怎样才能解决这个问题?
这是一个已知问题,因为r8d NDK
没有android:minSdkVersion
从AndroidManifest.xml
.
要解决该问题,请将文件 /android-ndk-r8d/build/gmsl/__gmsl 的第 512 行更改为:
int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))
在您的 AndroidManifest 中,添加以下行:
<uses-sdk android:minSdkVersion="3" />
这解决了我的问题。通常在导入下载的项目时会出现这种情况,因为新生成的项目没有这种错误。
有关信息,此问题也可以从命令行重现。
尝试将文件回车控制 (\r\n) 更改为 linux 格式 (\n) 为了解决这个问题,我在 vi 中编辑了文件并执行了“set filetype=unix”
看起来 ndk-build 中的 XML 解析代码对空格很敏感(从 r8e 开始)。当我的清单中有以下行时,我收到了这个错误:
<uses-sdk android:minSdkVersion ="10" android:targetSdkVersion="11" />
当我用以下行替换它时,问题就消失了,删除了 minSdkVersion 和 = 符号之间的空格:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="11" />
啊。
您是否应该修补 ndk(如已接受的答案中所述)或在应用程序端进行变通,这是值得商榷的。我选择了解决方法,因为我在一个需要构建多个不同环境的团队中工作,包括共享 CI 服务器,并且我不想为每个环境和每个新开发人员修补 ndk。如果您独自工作,接受的答案可能更合适,因为它也将在您未来的项目中得到修复。
将您的 NDK 更新为 r15b 或更高版本。对我来说它的工作。
刚刚遇到同样的问题
“....android-ndk-r12b/build/gmsl/__gmsl:512: *** 'wordlist' 函数的非数字第二个参数:'18e'。停止。”
如果你得到这个 18e,那么 e 可以是任何东西,这是因为在 Application.mk 中你向 APP_PLATFORM 添加了一个字母
“APP_PLATFORM := android-18e” 它应该是“APP_PLATFORM := android-18”
最后没有字母,这解决了我不知道何时以及如何添加它的错误类型,因为我已经好几个星期没有打开这个文件了,奇怪!