安装并配置 NDK 和 CMake

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

  • Android 原生开发工具包 (NDK):这是一套允许您在 Android 应用中使用 C 和 C++ 代码的工具。
  • 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. 打开项目后,点击 Tools(工具)> SDK Manager

  2. 点击 SDK Tools 选项卡。

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

    Image of SDK Manager 图 1. SDK Tools 窗口显示了 NDK (Side by side) 选项

  4. 点击 **OK**。

    对话框会显示 NDK 软件包在磁盘上占用的空间大小。

  5. 点击 **OK**。

  6. 安装完成后,点击 Finish(完成)

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

配置特定版本的 CMake

SDK Manager 包含 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 Manager 未包含的 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 的安装路径添加到您的 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/ 目录下。

    Image of SDK Tools window 图 2. SDK Tools 窗口显示了 NDK (Side by side) 选项

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