安装及配置 NDK 和 CMake

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

  • Android 原生开发套件 (NDK):这是一套可让您在 Android 应用中使用 C 和 C++ 代码的工具。
  • CMake:这是一款外部构建工具,可与 Gradle 搭配使用来构建原生库。如果您只计划使用 ndk-build,则不需要此组件。
  • LLDB:Android Studio 用于调试原生代码的调试程序。默认情况下,安装 Android Studio 时会随同安装 LLDB。

本页介绍了如何自动安装这些组件,以及如何使用 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 时,这样做有助于确保各个项目的 build 都可重现。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 (Side by side) 选项的 SDK Tools 窗口

  4. 点击 OK

    此时系统会显示一个对话框,告诉您 NDK 软件包占用了多少磁盘空间。

  5. 点击 OK

  6. 安装完成后,点击 Finish

  7. 您的项目会自动同步 build 文件并执行构建。修正发生的所有错误。

配置特定版本的 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. 打开项目后,依次点击 Tools > SDK Manager

  2. 点击 SDK Tools 标签页。

  3. 选中 Show Package Details 复选框。

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

    “SDK Tools”窗口的图片 图 2. 显示 NDK (Side by side) 选项的 SDK Tools 窗口

  5. 点击 OK

    此时系统会显示一个对话框,告诉您 NDK 软件包占用了多少空间。

  6. 点击 OK

  7. 安装完成后,点击 Finish

  8. 您的项目会自动同步 build 文件并执行构建。修正发生的所有错误。

  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 版本说明AGP 过往版本说明中介绍了不同版本 AGP 的默认 NDK 版本。