无法在Android Studio

时间:2016-12-19 08:09:23

标签: android android-studio android-ndk cmake

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

Enter image description here

正如您所看到的,没有像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

14 个答案:

答案 0 :(得分:108)

  • 打开 SDK Manager
  • 切换到 SDK工具标签
  • 安装 CMake

Example Image

答案 1 :(得分:26)

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

  1. 打开设置(Android Studio);
  2. 按" Android SDK";
  3. 搜索
  4. 在右侧,转到" SDK工具"托盘|标签;
  5. 检查" CMake"列表中的项目;
  6. 确定按钮;
  7. 现在,等待下一个世纪Gradle build,= D。

答案 2 :(得分:10)

  1. 检入应用程序模块的build.gradle文件

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

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

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

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

    Enter image description here

  6. 单击“确定”。

答案 3 :(得分:8)

  • 转到Android SDK管理器
  • 选择Android SDK工具
  • 找到CMake并单击 Apply 进行下载。
  • 稍后点击确定 Instructions

答案 4 :(得分:1)

就我而言(Android Studio 3.0)," SDK工具"中没有CMake。选项卡"外观&行为 - >系统设置 - > Android SDK"选项。但是我注意到在" SDK更新站点"选项卡,只有两个条目,其中一个(Android Repository https://dl.google.com/android/repository/repository2-1.xml)在"启用"中有一个红色标记。柱。它读了"错误407"在mouseover上,这是一个代理身份验证错误。我有正确的代理设置(测试连接与相同的存储库URL工作正常),所以这很奇怪。重启android studio并没有帮助。所以我添加了一个具有相同存储库的新条目,这次它工作正常,CMake出现在另一个选项卡中。希望这有助于某人。

答案 5 :(得分:1)

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

答案 6 :(得分:1)

enter image description here

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

答案 7 :(得分:1)

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

答案 8 :(得分: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位置
  3. 然后,您可以在下载后继续使用上一个指南:)

答案 9 :(得分:0)

在我改变CMake path工作的情况下:

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

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

答案 10 :(得分:0)

对我来说,是Mac OS Android Studio。在“文件”->“项目结构”->“项目”中,我将Gradle版本更改为4.4,将Android插件版本更改为3.1.0,

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

答案 11 :(得分:0)

放置cmake的模块的放置路径

如果您的cmake存在于应用程序主窗口中

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

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

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

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

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

我在 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')
    }
}