在更新到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?


当前回答

我也有同样的问题。我通过SDK工具下的SDK管理器解决了这个问题,单击显示包详细信息,然后在NDK下滚动(并排),勾选并应用您需要的版本。见下图:

我的问题是,为什么我们现在需要这个不需要NDK的项目?事实证明,NDK在我工作的项目中是一个已经存在的需求!

其他回答

转到应用程序的构建。gradle文件;

在android{}中添加可用的NDK版本,这显示在您发布的错误信息中。在本例中,您的版本是“21.0.6113669”

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

安卓 { ndk版本“21.0.6113669” }

以下解决方案假设您正在使用的机器目前已经安装了NDK,并且之前能够构建您的项目,但在更新到Android Gradle插件3.6.0后,开始出现错误“没有NDK匹配请求的版本”。在继续之前,请确保安装了NDK。

选项1:

你可以在项目结构对话框中选择本地安装的NDK

你可以打开项目结构对话框点击文件>项目结构…或按热键CTRL + ALT + SHIFT + S(在windows)

一旦项目结构对话框打开,转到SDK位置,在Android NDK位置下选择您本地安装的NDK版本。通常这是安装在你的用户文件夹的某个地方,然后是\AppData\Local\Android\Sdk\ndk\%ndk version%至少Windows是这样。

-来自Android Studio 3.6 Build #AI-192.7142.36.36.6200805,于2020年2月12日构建

选项2:

执行选项1将编辑您的本地。属性文件,将在大多数情况下工作。但是如果你想在你构建项目的所有机器上使用一致的NDK版本,根据这个官方指南,你可以从你的模块gradle脚本中配置它。简单地在你的模块gradle脚本的android{}块中添加ndkVersion。

android {
    ndkVersion "major.minor.build"
}

用你想要使用的NDK版本替换双引号之间的字符串

选项3:

如果你想要在特定机器上构建的所有项目都使用相同的NDK版本,你也可以设置ANDROID_NDK_HOME环境变量和NDK文件夹的路径。

升级到gradle:3.6.0(或更高版本)后。尝试重命名或删除位于C:\Users\<user>\AppData\Local\Android\Sdk的ndk和ndk-bundle文件夹

获奖者: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647

我也有同样的问题。我通过SDK工具下的SDK管理器解决了这个问题,单击显示包详细信息,然后在NDK下滚动(并排),勾选并应用您需要的版本。见下图:

我的问题是,为什么我们现在需要这个不需要NDK的项目?事实证明,NDK在我工作的项目中是一个已经存在的需求!

如果你很难找到一个确切的NDK版本,你可以从这里下载它,这是我的情况下,我的IDE需要版本21.1.6352462,而这个版本不再存在于官方网站(https://developer.android.com/ndk/downloads)

所有Android NDK原生开发工具包的API,版本和操作系统