【问题标题】:Unable to find CMake in Android Studio在 Android Studio 中找不到 CMake
【发布时间】:2017-05-04 05:57:17
【问题描述】:

我需要在我需要 LLDB、CMake 和 NDK 的 Android 程序中添加 C/C++ 代码。我在 SDK 管理器中找到了 LLDB 和 NDK,但那里缺少 CMake。我尝试从 CMake 官方网站手动下载它,发现对于 Android,我们需要 SDK 定制的 CMake。

如您所见,没有 CMake 之类的选项。

在哪里可以找到适用于 Android 的 CMake 版本?

我已经尝试了网站上的 CMake 和我在 ndk-bundle/build 文件夹中找到的一个,但两者都给出了与以下相同的错误。可以从中得到什么以及如何解决问题?

Build command failed.

Error while executing 'C:\Users\amishr33\AppData\Local\Android\sdk\cmake\bin\cmake.exe' with arguments {-HC:\Users\amishr33\AndroidStudioProjects\MyApplication\app\src\main\jni -BC:\Users\amishr33\AndroidStudioProjects\MyApplication\app\.externalNativeBuild\cmake\debug\armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=C:\Users\amishr33\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\amishr33\AndroidStudioProjects\MyApplication\app\build\intermediates\cmake\debug\obj\armeabi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:\Users\amishr33\AppData\Local\Android\sdk\cmake\bin\ninja.exe -DCMAKE_TOOLCHAIN_FILE=C:\Users\amishr33\AppData\Local\Android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=15 -DCMAKE_CXX_FLAGS=-std=c++11 -DANDROID_TOOLCHAIN=clang -DANDROID_STL=gnustl_static}
CMake Error: Could not create named generator Android Gradle - Ninja
Generators
  Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
                                 Optional [arch] can be "Win64" or "IA64".
  Visual Studio 9 2008 [arch]  = Generates Visual Studio 2008 project files.
                                 Optional [arch] can be "Win64" or "IA64".
  Visual Studio 8 2005 [arch]  = Generates Visual Studio 2005 project files.
                                 Optional [arch] can be "Win64".
  Visual Studio 7 .NET 2003    = Deprecated.  Generates Visual Studio .NET
                                 2003 project files.
  Borland Makefiles            = Generates Borland makefiles.
  NMake Makefiles              = Generates NMake makefiles.
  NMake Makefiles JOM          = Generates JOM makefiles.
  Green Hills MULTI            = Generates Green Hills MULTI files
                                 (experimental, work-in-progress).
  MSYS Makefiles               = Generates MSYS makefiles.
  MinGW Makefiles              = Generates a make file for use with
                                 mingw32-make.
  Unix Makefiles               = Generates standard UNIX makefiles.
  Ninja                        = Generates build.ninja files.
  Watcom WMake                 = Generates Watcom WMake makefiles.
  CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
  CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
  CodeBlocks - Ninja           = Generates CodeBlocks project files.
  CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.
  CodeLite - MinGW Makefiles   = Generates CodeLite project files.
  CodeLite - NMake Makefiles   = Generates CodeLite project files.
  CodeLite - Ninja             = Generates CodeLite project files.
  CodeLite - Unix Makefiles    = Generates CodeLite project files.
  Sublime Text 2 - MinGW Makefiles
                               = Generates Sublime Text 2 project files.
  Sublime Text 2 - NMake Makefiles
                               = Generates Sublime Text 2 project files.
  Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.
  Sublime Text 2 - Unix Makefiles
                               = Generates Sublime Text 2 project files.
  Kate - MinGW Makefiles       = Generates Kate project files.
  Kate - NMake Makefiles       = Generates Kate project files.
  Kate - Ninja                 = Generates Kate project files.
  Kate - Unix Makefiles        = Generates Kate project files.
  Eclipse CDT4 - NMake Makefiles
                               = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - MinGW Makefiles
                               = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Error:executing external native build for cmake C:\Users\amishr33\AndroidStudioProjects\MyApplication\app\src\main\jni\CMakeLists.txt

【问题讨论】:

  • 您使用的是哪个版本的 Android Studio?尝试更新到最新版本,我尝试将我的 android Studio 更新到 2.2.3 并在 Android SDK 内部 --> SDK 工具在我看来,你可以在这里看到:screenshot 我希望我帮了你 m8 :D 抱歉回答晚了:(
  • 您使用的是 32 位 Windows 吗? Android Studio Cmake 仅适用于 64 位机器。这就是为什么您在 SDK 管理器中找不到 Cmake 的原因。
  • 确保您使用的是 64 位 Android Studio!看到这个stackoverflow.com/questions/42912919/…
  • 你的问题解决了吗?
  • 你可以在sdk manager工具中安装它,但首先你必须关闭你的项目

标签: android android-studio android-ndk cmake


【解决方案1】:
  • 打开 SDK 管理器
  • 切换到 SDK 工具 标签
  • 安装 CMake

【讨论】:

  • 我认为问题在于 SDK 工具中没有 CMake
  • 为什么会出现在“外观与行为”中?
  • 对于那些因为没有特定版本的 CMake(对我来说是 CMake '3.10.2' was not found in SDK, PATH, or by cmake.dir property.)而来到这里的人来说,点击右下角的“显示包详细信息”框,让您下载特定的版本。
【解决方案2】:

如果您执行以下操作,您可能会毫无问题地获得 CMake:

  1. 打开设置(Android Studio);
  2. 按“Android SDK”搜索;
  3. 在右侧,转到“SDK 工具”托盘|选项卡;
  4. 勾选列表中的“CMake”项;
  5. 确定按钮;
  6. 现在,等下个世纪 Gradle 构建起来吧,=D。

【讨论】:

  • 我认为问题在于菜单上没有显示 CMake
【解决方案3】:
  1. 在 build.gradle 文件中检查您的应用模块

    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    
  2. 删除cmake部分

  3. 重新同步项目: 转到菜单构建 -> 引用内衬 C++ 项目

  4. 右击模块,如app模块,从菜单中选择“Link C++ Project with Gradle”。

  5. 您应该会看到一个类似于下图所示的对话框。

  6. 点击确定。

【讨论】:

  • as3 菜单中没有Refersh Lined C++ Projects
  • 谢谢,但我在 cMakeList.txt 中遇到问题 set_target_properties 错误你能帮帮我吗
  • 非常感谢,它节省了我很多时间
【解决方案4】:
  • 转到 Android SDK 管理器
  • 选择 Android SDK 工具
  • 找到CMake并点击应用下载。
  • 稍后单击确定

【讨论】:

  • 谢谢 Girish。这是修复它的最佳方法,它对我有用!
【解决方案5】:

放置你的 cmake 所在模块的路径

如果你的 cmake 存在于 app main 中

 externalNativeBuild {
                cmake {
                        path "CMakeLists.txt"
                      }
            }

如果你的 cmake 存在于任何模块中

  externalNativeBuild {
                cmake {
                    path file('../modulelib/CMakeLists.txt')
                }
            }

其中“modulelib”是您的库模块文件夹名称

【讨论】:

    【解决方案6】:

    在我的情况下(Android Studio 3.0),“外观和行为 -> 系统设置 -> Android SDK”选项的“SDK 工具”选项卡中没有 CMake。但是我注意到在“SDK 更新站点”选项卡中,只有两个条目,其中一个(Android Repository https://dl.google.com/android/repository/repository2-1.xml)在“启用”列中有一个红色标记。它在鼠标悬停时读取“错误 407”,这是代理身份验证错误。我有正确的代理设置(测试连接使用相同的存储库 URL 工作正常),所以这很奇怪。重新启动 android studio 没有帮助。所以我添加了一个具有相同存储库的新条目,这次它运行良好,CMake 出现在另一个选项卡中。希望这对某人有所帮助。

    【讨论】:

      【解决方案7】:

      您可以在 SDK 管理器工具中安装它,但首先您必须关闭已打开的项目。使用开始菜单上的配置。

      【讨论】:

        【解决方案8】:

        1. 打开 Android Studio ?
        2. 将鼠标悬停在工具栏上,直到找到 SDK 管理器,如上图所示
        3. 点击SDK 管理器
        4. 默认首选项中,转到外观和行为
        5. 现在选择系统设置
        6. 现在选择 Android SDK
        7. 点击 SDK 工具
        8. 检查 CMake

        【讨论】:

          【解决方案9】:

          在我的情况下,更改 CMake path 有效:

          externalNativeBuild {
              /*
                cmake {
                    path "CMakeLists.txt"
                }
              */
          
              cmake {
                  path 'src/main/jni/opus/CMakeLists.txt'
              }
          }
          

          【讨论】:

            【解决方案10】:

            检查您是否使用 64 位版本的 Android Studio。在 Android Studio 32 位中,CMake 不会出现在 SDK Manager 中。

            【讨论】:

              【解决方案11】:

              检查一下,我认为这个网站解释了你需要什么:

              https://codelabs.developers.google.com/codelabs/android-studio-cmake/index.html?index=..%2F..%2Findex#0

              记得勾选“你需要什么”

              更新:

              NDK:https://developer.android.com/ndk/downloads/index.html 来源:https://developer.android.com/ndk/index.html

              CMake:https://cmake.org/files/v3.7/cmake-3.7.1-win64-x64.zip 来源:https://cmake.org/

              LLDB(仅适用于 Debian 系统):http://apt.llvm.org/ 来源:http://lldb.llvm.org/download.html

              下载这些文件后,复制到您的 SDK 文件夹(通常位于:“C:\android-sdk\”) 您可以在此处本地化文件夹:

              1. 文件 -> 项目结构到项目结构中
              2. 左 -> SDK 位置

              然后你可以在下载后继续之前的指南:)

              【讨论】:

              • 但它没有说明如何/在哪里获得 CMake for android studio。
              • 您正在搜索“下载”部分?
              • 查看此链接:developer.android.com/studio/projects/add-native-code.html 如果您有任何问题,请告诉我,我很乐意为您提供帮助:D
              • 下载部分要求打开 SDK 管理器并从他们的...下载 CMake,但 SDK 管理器中没有 CMake 选项。
              • 我已经尝试过这部分,从它的网站手动下载 cmake 并将其保存在 sdk 文件夹中。但它不起作用。在我对这个问题的研究中,我发现 SDK 使用了专门为 android 定制的 CMake,我正在尝试找到该版本的 CMake。
              【解决方案12】:

              对我来说,mac OS Android 工作室。在 File->Project Structure-> Project 中,我将 Gradle 版本更改为 4.4,Android 插件版本更改为 3.1.0,然后就可以了。

              另外,您还可以在 gradle-> classpath 'com.android.tools.build:gradle:3.1.0' 中更改 Android 插件版本

              【讨论】:

                【解决方案13】:

                对我来说,在我的 gradle 中取消“版本”选项解决了什么问题

                 externalNativeBuild {
                        cmake {
                            path "src/main/cpp/CMakeLists.txt"
                            //version was here
                        }
                    }
                

                【讨论】:

                • 不知道为什么这被否决了,对我有用,因为我的 cmake 比要求的更新。我猜我的赞成票是 0 :),但对于 Linux Mint 的人来说,这个答案很好。您还需要安装 ninja-build。
                【解决方案14】:

                我在 Android Studio 4.2 C15 上使用 SDK 30 与 OpenCV 4 和 Ninja 结合使用,在我的情况下,更改 CMake 路径如下所示:

                externalNativeBuild {
                    /*
                      cmake {
                          path "CMakeLists.txt"
                      }
                    */
                
                    cmake {
                         path (project.projectDir.toString() + '/libcxx_helper/CMakeLists.txt')
                    }
                }
                

                【讨论】:

                  【解决方案15】:

                  实际上,我不确定我的解决方案是否相关,我还是把它留在这里

                  转到/Users/yournamehere/Library/Android/sdk/ndk我找到了21.4.7075529的版本并删除了它,然后再次使用android studio从configuration > Preferences下载了相同的版本并按照附图中的步骤

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-10-25
                    • 2016-08-29
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多