跳到主要内容

想通过命令行安装特定版本的 Android NDK

· 阅读需 3 分钟
Quany
软件工程师

您想通过命令行安装特定版本的 Android NDK,但需要先澄清一个关键点:adb 命令主要用于与已连接的 Android 设备通信,而安装 NDK 是在您的本地开发电脑上进行的操作。正确的工具是 Android SDK 的 sdkmanager

下面为您详细介绍两种方案来满足您的需求。

🔧 方案一:使用 sdkmanager 安装指定版本(推荐)

这是最直接、由 Android 官方推荐的方法。sdkmanager 是一个专门用于管理 Android SDK 包(包括 NDK)的命令行工具。

  1. 定位 sdkmanager:首先,您需要找到您电脑上 Android SDK 目录下的 sdkmanager 工具。它通常位于 android-sdk/tools/bin/ 目录下。如果您设置了 ANDROID_SDK_ROOTANDROID_HOME 环境变量,会更容易定位。

  2. 执行安装命令:打开终端(或命令提示符),使用以下命令格式进行安装。请注意,sdkmanager 期望的版本字符串格式可能与您提供的略有不同,它通常遵循 major.minor.revision 的模式。

    sdkmanager "ndk;21.0.6113669"

    在命令执行过程中,系统会显示许可协议,您需要接受才能继续安装。您也可以在命令中直接加上 --accept_licenses 参数来自动接受。

  3. 验证安装:安装完成后,您可以在 $ANDROID_SDK_ROOT/ndk/ 目录下找到一个名为 21.0.6113669 的文件夹,这就是安装好的 NDK。

⚙️ 方案二:配置项目使用已安装的 NDK

如果您的开发环境中已经安装了多个版本的 NDK(您的错误信息显示本地有众多版本),另一个高效的策略是直接修改项目配置,使其使用一个已有的、兼容的版本,而不是重新安装。

  • 修改项目配置:在您项目模块(通常是 app)级的 build.gradle 文件中,指定一个您本地已有的 NDK 版本。从您的错误日志看,21.3.6528147 是一个很接近的选择。

    android {
    ndkVersion "21.3.6528147" // 指定一个本地已有的兼容版本
    }

💎 方案对比与建议

为了让您更清晰地选择,这里有一个简单的对比表格:

方案核心命令/操作优点适用场景
方案一sdkmanager "ndk;21.0.6113669"官方推荐,直接满足版本要求需要精确匹配特定 NDK 版本时
方案二build.gradle 中设置 ndkVersion快速,无需下载,利用现有资源项目有一定灵活性,允许使用兼容版本

综合建议

  • 如果您确定项目必须使用 21.0.6113669 这个特定版本,请使用方案一
  • 如果希望快速解决问题,并且经过测试后确认使用一个已有的高版本(如 21.3.6528147)也能成功编译,那么方案二是更高效的选择。

⚠️ 重要注意事项

  • 确保 sdkmanager 可用:在执行方案一的命令前,请确认 sdkmanager 在您的系统环境变量 PATH 中,或者您需要切换到其所在目录执行。
  • 版本可用性:极老的或非常规的 NDK 版本可能已从官方仓库中移除。如果 sdkmanager 提示找不到该版本,您可能需要从其他渠道手动下载并配置。
  • AGP 版本:您遇到这个问题的原因可能是项目使用的 Android Gradle Plugin (AGP) 版本较老,其默认的 NDK 版本恰好是 21.0.6113669。长远考虑,升级 AGP 版本是一个更好的选择,因为它会自动管理并使用更新的、兼容性更好的 NDK。

希望这些方案能帮助您解决问题!如果您在操作中遇到任何其他情况,欢迎随时提出。

微信公众号

微信公众号