安装和配置 NDK 与 CMake

要为您的应用编译和调试原生代码,您需要以下组件:

  • Android 原生开发套件 (NDK):一组工具,可让您在 Android 中使用 C 和 C++ 代码。
  • CMake:一个外部构建工具,与 Gradle 配合使用来构建原生库。如果您只打算使用 ndk-build,则无需此组件。
  • LLDB:Android Studio 用于调试原生代码的调试器。默认情况下,LLDB 将随 Android Studio 一起安装。

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

自动安装 NDK 和 CMake

如果您已提前接受 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. 打开项目后,依次点击 Tools > SDK Manager

  2. 点击 SDK Tools 标签页。

  3. 选中 NDK (Side by side)CMake 复选框。

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

  4. 点击 OK

    对话框会告诉您 NDK 软件包在磁盘上占用的空间。

  5. 点击 OK

  6. 安装完成后,点击 Finish

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

配置特定版本的 CMake

SDK 管理器包含 3.6.0 分支版 CMake 和 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. 打开项目后,依次点击 Tools > SDK Manager

  2. 点击 SDK Tools 标签页。

  3. 选中 Show Package Details 复选框。

  4. 选中 NDK (Side by side) 复选框及其下方与您要安装的 NDK 版本对应的复选框。Android Studio 会将所有 NDK 版本安装到 android-sdk/ndk/ 目录中。

    SDK 工具窗口图片 图 2. 显示“NDK (并行)”选项的“SDK 工具”窗口

  5. 点击 OK

    对话框会告诉您 NDK 软件包在磁盘上占用的空间。

  6. 点击 OK

  7. 安装完成后,点击 Finish

  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 历史发布说明中。