【问题标题】:ndk build error for Ninja CMAKE_MAKE_PROGRAM is not setNinja CMAKE_MAKE_PROGRAM 的 ndk 构建错误未设置
【发布时间】:2019-02-13 09:20:05
【问题描述】:

我下载 ndk cmake 和 LLDB 用于 ndk 开发。然后我创建了一个项目 c++代码,应用编译错误。

CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.

...

Configuration failed.
External native generate JSON debug: JSON generation completed with problem
FAILURE: Build failed with an exception.

\* What went wrong:
Execution failed for task ':app:generateJsonModelDebug'.
com.android.ide.common.process.ProcessException: Error configuring

【问题讨论】:

  • 您使用 SDK 管理器下载了 CMake 对吗?不是来自其他地方。我的 Android SDK 目录中有三个 cmake 版本,它们都在其 bin 子目录中包含 ninja.exe
  • 我通过Android studio下载了CMake,在/Users/fish/Library/Android/sdk/cmake/3.10.2.4988404/bin目录下有ninja

标签: android-studio android-ndk


【解决方案1】:

我用 Valentin Safonnikov 的评论解决了这个问题:

"您可以将 cmake 的路径添加到与 gradlew 相同的目录中的 local.properties 文件中,而不是更改全局路径。cmake.dir=D\:\\Android\\sdk\\cmake\\3.10.2.4988404"

编辑:我只是认为它已经解决了。当我卸载 cmake 3.10 并只安装 cmake 3.6 时,所有问题才最终得到解决(即使使用 cmake.dir=...\\3.6...,它仍然使用 3.10。我可以在文本 gradle 输出中看到这一点:

External native generate JSON debug: executing cmake Executable : C:\Users\User\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\cmake.exe
arguments : 
...
-DCMAKE_MAKE_PROGRAM=C:\Users\User\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\ninja.exe
...

【讨论】:

  • cmake.dir 对我没有帮助,“uninstalled cmake 3.10”救了我。
  • 删除文件夹“..../Sdk/platform-tools/cmake/3.10.2.4988404”帮助了我。
【解决方案2】:

我已经通过将 ninja 添加到 Path 来解决问题。

/Users/fish/Library/Android/sdk/cmake/3.10.2.4988404/bin

【讨论】:

  • 您可以将 cmake 的路径添加到与 gradlew 相同的目录中的 local.properties 文件中,而不是更改全局路径。 cmake.dir=D\:\\Android\\sdk\\cmake\\3.10.2.4988404
  • @chefish “将忍者添加到路径”是什么意思?我在哪里可以找到这个“路径”?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 2013-10-04
相关资源
最近更新 更多