在Android Studio中找不到CMake


73

我需要在需要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 Tools在我看来,您可以在这里看到:屏幕快照我希望我对您有所帮助m8:D对不起,回答一个有点晚了:(
阿尔贝托

5
您是否正在使用32位窗口?Android Studio Cmake仅适用于64位计算机。这就是为什么您在SDK Manager中找不到Cmake的原因。
乔恩·古德温

2
确保您使用的是64位Android Studio!看到这个stackoverflow.com/questions/42912919/...
user1453328

你解决了这个问题吗?
MNFS '18年

您可以将其安装在sdk管理器工具中,但首先必须关闭您的项目
Jeremy Clarkson,

Answers:



27

如果执行以下操作,则可能会得到CMake,而不会出现任何问题:

  1. 打开设置(Android Studio);
  2. 通过“ Android SDK”搜索;
  3. 在右侧,转到“ SDK工具”选项卡|选项卡;
  4. 检查列表中的“ CMake”项目;
  5. 按下OK按钮;
  6. 现在,等到下个世纪,Gradle建立时,= D。

我认为问题在于菜单上没有显示CMake
XFMoulet

14
  1. 检入build.gradle文件中的应用模块

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

  3. 重新同步项目:转到菜单Build-> Refersh Lined C ++ Projects

  4. 右键单击该模块(例如应用程序模块),然后从菜单中选择“使用Gradle链接C ++项目”。

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

    在此处输入图片说明

  6. 单击确定。


Refersh Lined C++ Projectsas3菜单中没有任何项目
Vlad18年

谢谢,但我在cMakeList.txt set_target_properties错误中遇到问题,请您帮帮我
Innocent

非常感谢您,它节省了我很多时间
Panchal Amit

8
  • 转到Android SDK管理器
  • 选择Android SDK工具
  • 找到CMake并单击Apply下载。
  • 以后点击 OK 使用说明

谢谢吉里斯。这是修复它的最佳方法,对我有用!
AnilV

2

放置cmake的模块的放置路径

如果您的cmake存在于应用程序主目录中

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

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

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

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


1

就我而言(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出现在另一个选项卡中。希望这对某人有帮助。



1

在此处输入图片说明

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


1

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


0

选中此选项,我认为该站点说明了您的需求:

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。
ashish mishra

您正在搜索“下载”部分吗?
艾伯托

检查此链接:developer.android.com/studio/projects/add-native-code.html如果您有任何问题,请告诉我,我将很乐意为您提供帮助:D
Alberto

“下载”部分要求打开SDK管理器并从其下载CMake ...,但SDK管理器中没有CMake选项。
ashish mishra

2
我已经尝试过该部分,从其网站手动下载cmake并将其保存在sdk文件夹中。但它不起作用。在对这个问题的研究中,我发现SDK为Android使用了专门定制的CMake,我正在尝试找到该版本的CMake。
ashish mishra

0

对我来说,mac OS Android Studio。在文件->项目结构->项目中,我将Gradle版本更改为4.4,将Android插件版本更改为3.1.0,然后它变得不错。

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.