在将我的 Android NDK 从 android-ndk-r8b(官方)切换到 android-ndk-r7-crystax-5.beta2(非官方 Crystax 构建)后,我在 Eclipse (ADT) 中构建的 NDK 立即开始失败,原因如下:
bin/sh -c:line 1 Syntax Error:unexpected end of file
从命令行构建(即运行ndk-build.cmd
)照常工作。
在将我的 Android NDK 从 android-ndk-r8b(官方)切换到 android-ndk-r7-crystax-5.beta2(非官方 Crystax 构建)后,我在 Eclipse (ADT) 中构建的 NDK 立即开始失败,原因如下:
bin/sh -c:line 1 Syntax Error:unexpected end of file
从命令行构建(即运行ndk-build.cmd
)照常工作。
通过快速分析(使用 Sysinternals Proccess Monitor - NDK 自己的详细日志记录对我帮助不大),我看到 make.exe 调用 c:\cygwin\bin\sh.exe 显然是 DOS 批处理命令(! ):
C:/cygwin/bin/sh.exe -c "if not exist \"obj\local\armeabi\\\" md \"obj\local\armeabi\\\""
虽然我的 PATH 上没有 C:\Cygwin\bin (这是一个坏主意 - 导致与批处理文件不兼容),但 Eclipse ADT 将 C:\Cygwin\bin 预先添加到项目的 PATH 中:-( 一旦我删除了 C :\cygwin\bin 从路径中,问题解决了。
要解决这个问题:
"C:\cygwin\bin;"
从其开头删除。