android - 没有与请求的版本匹配的 NDK 版本

标签 android android-ndk android-gradle-plugin android-sdk-tools android-sdk-manager

更新到 后Android Gradle 插件 3.6.0 (2020 年 2 月 24 日发布),几个项目独立开始失败:

No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669

通过安装旧的预期 ndk 版本在本地“修复”这个问题非常简单:
sdkmanager 'ndk;20.0.5594570'

但是,我的问题是:这个旧版本在哪里以及如何指定?以及如何更新它以匹配最新版本 21.0.6113669 ?

最佳答案

以下解决方案假定您当前使用的机器已安装 NDK,并且之前能够构建您的项目,但在更新到 Android Gradle 插件后开始失败并出现错误“没有 NDK 版本与请求的版本匹配”3.6.0 .在继续之前,请确保已安装 NDK。
选项1:
您只需在 中选择本地安装的 NDK项目结构对话框
您可以通过单击 File > Project Structure... 打开项目结构对话框。或按热键 CTRL + ALT + SHIFT + S (在 window 上)
项目结构对话框打开后,转到 SDK位置并在 下选择您本地安装的 NDK 版本Android NDK 位置 .通常,它安装在您的用户文件夹中的某个位置,然后是 \AppData\Local\Android\Sdk\ndk\%ndk version%。至少对于 Windows。
Project Structure dialog screenshot - 来自 Android Studio 3.6 Build #AI-192.7142.36.36.6200805,于 2020 年 2 月 12 日构建
选项 2:
执行选项 1 将编辑您的 local.properties为您提供文件,并且在大多数情况下都可以使用。但是,如果您想在构建项目的所有机器上使用一致的 NDK 版本,根据 this official guide ,你可以从你的模块 gradle 脚本中配置它。只需添加 ndkVersion在你的模块 gradle 脚本的 android{}像这样阻止。

android {
    ndkVersion "major.minor.build"
}
用您要使用的 NDK 版本替换双引号之间的字符串
选项 3:
如果您希望在特定机器上构建的所有项目都使用相同的 NDK 版本,您还可以设置 ANDROID_NDK_HOME带有 NDK 文件夹路径的环境变量。

关于android - 没有与请求的版本匹配的 NDK 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60404457/

相关文章:

android - 如何使用 build.gradle 文件将静态库添加到 Android NDK?

android - 模拟电源按钮按下以显示关机对话框

android-studio - 未发现 ID 为 'crashlytics' 的插件与 Android Studio 最新插件有关

android - 警告 : API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'

android - 通知未被取消 (Android)

java - 如何在 android 上运行 USSD 命令?

c++ - GoogleTest for Android NDK C++ with CMake

java - 运行react-native run-android时出现错误 react native

android - : Landroid/arch/core/executor/AppToolkitTaskExecutor 解析失败

java - 实现方法