安装和配置 NDK 和 CMake

要编译和调试应用程序的本机代码,您需要以下组件

  • Android Native Development Kit (NDK):一组工具,允许您将 C 和 C++ 代码与 Android 一起使用。
  • CMake:一个外部构建工具,与 Gradle 协同工作以构建您的原生库。如果您只打算使用 ndk-build,则不需要此组件。
  • LLDB:Android Studio 用于调试原生代码的调试器。默认情况下,LLDB 将与 Android Studio 一起安装。

本页面介绍如何自动安装这些组件,或使用 Android Studio 或 sdkmanager 工具手动下载并安装它们。

自动安装 NDK 和 CMake

Android Gradle 插件 4.2.0+ 可以在您第一次构建项目时自动安装所需的 NDK 和 CMake,前提是它们已提前接受了许可。如果您已阅读并同意许可条款,则可以使用以下命令在脚本中预先接受许可:

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

安装 NDK 和 CMake

当您安装 NDK 时,Android Studio 会选择最新可用的 NDK。对于大多数项目,安装此默认版本的 NDK 就足够了。但是,如果您的项目需要一个或多个特定版本的 NDK,则可以 下载和配置特定版本。这样做有助于您确保跨项目的可重复构建,这些项目各自依赖于特定版本的 NDK。Android Studio 将所有版本的 NDK 安装在 android-sdk/ndk/ 目录中。

要在 Android Studio 中安装 CMake 和默认 NDK,请执行以下操作:

  1. 在打开项目的情况下,单击 **工具 > SDK 管理器**。

  2. 单击 **SDK 工具** 选项卡。

  3. 选中 **NDK(并行)** 和 **CMake** 复选框。

    SDK 管理器图像 图 1. 显示 **NDK(并行)** 选项的 **SDK 工具** 窗口

  4. 单击 **确定**。

    一个对话框会告诉您 NDK 软件包在磁盘上占用了多少空间。

  5. 单击 **确定**。

  6. 安装完成后,单击 **完成**。

  7. 您的项目将自动同步构建文件并执行构建。解决出现的任何错误。

配置特定版本的 CMake

SDK 管理器包含 CMake 的 3.6.0 分叉版本和版本 3.10.2。未设置特定 CMake 版本的项目将使用 CMake 3.10.2 进行构建。要设置 CMake 版本,请将以下内容添加到模块的 build.gradle 文件中

Groovy

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "cmake-version"
        }
    }
}

Kotlin

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version = "cmake-version"
        }
    }
}

如果您想使用 SDK 管理器未包含的 CMake 版本,请执行以下步骤:

  1. 从官方 CMake 网站下载并安装 CMake
  2. 在模块的 build.gradle 文件中指定您希望 Gradle 使用的 CMake 版本。
  3. 将 CMake 安装路径添加到您的 PATH 环境变量中,或者将其包含在项目的 local.properties 文件中,如所示。如果 Gradle 无法找到您在 build.gradle 文件中指定的 CMake 版本,您将收到构建错误。

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. 如果您尚未在工作站上安装 Ninja 构建系统,请访问 官方 Ninja 网站,下载并安装适用于您操作系统的最新版本的 Ninja。确保还将 Ninja 安装路径添加到您的 PATH 环境变量中。

安装特定版本的 NDK

要安装特定版本的 NDK,请执行以下操作:

  1. 在打开项目的情况下,单击 **工具 > SDK 管理器**。

  2. 单击 **SDK 工具** 选项卡。

  3. 选中 **显示软件包详细信息** 复选框。

  4. 选中 **NDK(并行)** 复选框,以及下面与您要安装的 NDK 版本相对应的复选框。Android Studio 将所有版本的 NDK 安装在 android-sdk/ndk/ 目录中。

    SDK 工具窗口图像 图 2. 显示 **NDK(并行)** 选项的 **SDK 工具** 窗口

  5. 单击 **确定**。

    一个对话框会告诉您 NDK 软件包(或软件包)占用了多少空间。

  6. 单击 **确定**。

  7. 安装完成后,单击 **完成**。

  8. 您的项目将自动同步构建文件并执行构建。解决出现的任何错误。

  9. 配置每个模块 以使用您希望它使用的 NDK 版本。在使用 Android Studio 3.6 或更高版本时,如果您没有指定版本,Android Gradle 插件会选择一个已知与之兼容的版本。

在项目中配置特定版本的 NDK

如果您遇到以下情况之一,则可能需要在项目中配置 NDK 的版本:

  • 您的项目是继承的,您需要使用特定版本的 NDK 和 Android Gradle 插件 (AGP)。有关详细信息,请参阅 为 Android Gradle 插件配置 NDK
  • 您安装了多个版本的 NDK,并且想要使用其中一个。在这种情况下,请使用模块的 build.gradle 文件中的 android.ndkVersion 属性指定版本,如以下代码示例所示。

    Groovy

    android {
        ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }
    

    Kotlin

    android {
        ndkVersion = "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }
    

每个 AGP 版本的默认 NDK 版本

在发布之前,每个 AGP 版本都会与当时的最新稳定版 NDK 版本进行全面测试。如果您没有在 build.gradle 文件中指定 NDK 版本,则此 NDK 版本用于构建您的项目。不同版本的 AGP 的默认 NDK 版本记录在 AGP 发布说明AGP 过去发布说明 中。