【问题标题】:ndk-build fails with process_begin: CreateProcess(NULL, uname -a, ...) failedndk-build 因 process_begin 失败:CreateProcess(NULL, uname -a, ...) failed
【发布时间】:2015-04-01 16:58:24
【问题描述】:

我正在开发一个在 Windows 8 上使用 Android Studio 的 android 应用程序,并且我正在使用一些本机代码。 突然之间我无法编译我的 C 文件。 当我运行 ndk-build 时,出现以下错误:

process_begin: CreateProcess(NULL, uname -a, ...) failed.
process_begin: CreateProcess(NULL, uname -r, ...) failed.
The system cannot find the path specified.
'mount' is not recognized as an internal or external command,
operable program or batch file.

我真的很沮丧,因为我没有真正搞砸任何东西,而且 android-sdk 和 android-ndk 似乎都在我的 PATH 中。

任何帮助将不胜感激! 谢谢你

【问题讨论】:

  • 您可能安装的东西弄乱了您的环境参数。不是很科学,但最简单的方法通常是尝试卸载并重新设置 Android Studio 和 NDK,以确保它们覆盖已修改的环境值。希望能解决你的问题!
  • 刚刚做了,还是一样...您知道是什么原因造成的吗?路径中缺少什么,所以也许我可以手动添加它?
  • NDK 路径是我唯一能想到的。但是你说你已经检查过那个了。不幸的是,我没有其他猜测......
  • 返回到安装 ndk 的 root/samples 中的 ndk 示例。查看您是否可以按照 ndk 示例使用命令行在这些项目上构建示例。 "uname" 是一个 linux 系统 shell cmd 而不是 windows。那是从哪里来的呢?如果在 Windows 操作系统上,我会为 ndk 使用 VM。
  • 您是否指定了ANDROID_NDK_HOME 或将ndk.dir=C:\\ndk 放入local.properties。您的 .c 文件是否在 jni 文件夹中?

标签: android windows android-studio android-ndk


【解决方案1】:

我认为您的 NDK 构建链显然在某个地方定位了错误的架构

我想在您的错误日志中,您可以看到如下内容:

Android NDK: Unable to determine HOST_OS from uname -s: 
Android NDK: Please define HOST_OS in your environment.
...
process_begin: CreateProcess(NULL, uname -s, ...) failed.

在 Windows 下,您可以尝试使用命令 ndk-build.cmd 而不是 ndk-build,建议使用 here

【讨论】:

  • 谢谢,很遗憾这里不是这样,我试过 ndk-build.cmd 但没有帮助
【解决方案2】:

当我遇到这个问题时,原因是一些空格潜入我的 makefile 中的续行符 ('\') 和换行符之间。这显然是 Android Studio 完全不能接受的。

查看编辑器可能“有帮助”(但不可见)添加到 makefile 中的任何额外空格/制表符或行尾不一致。

您无需更改任何内容即可使其进入。在某些情况下,仅在错误的文本编辑器中打开它会导致文件更改。在其他情况下,看似简单的复制和粘贴也会添加不需要的格式调整。

【讨论】:

    【解决方案3】:

    如果你把 OpenCV.mk 改成你的目标平台,比如 Android.mk 文件中的 OpenCV-x86.mk,那么它就可以工作了。

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 2021-06-06
      • 2019-03-20
      • 2011-06-21
      相关资源
      最近更新 更多