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


当前回答

回答你没有被其他人回答的部分问题,“这个旧版本是在哪里指定的,又是如何指定的?”如何更新它以匹配最新版本21.0.6113669?”:

默认版本是由Android Gradle插件设置的。每个版本都将默认使用我们在测试期间使用的NDK版本,以保证最佳的兼容性。

这个插件和早期插件版本的区别在于,它可以愉快地使用您碰巧安装的任何NDK。这给用户带来了大量“在我的机器上工作”的问题,他们的同事无法构建项目,它不能在CI上工作,但可以在本地运行,等等。情况不太好。

你可以选择一个特定版本的NDK使用在你的项目通过设置android。ndkVersion在build.gradle中。如果你不这样做,它会尝试使用你正在使用的Gradle插件的默认版本。

令人讨厌的是,大多数版本(直到4.1)都不会自动下载默认版本,这会给您带来您所看到的错误。如果您明确地在构建中选择一个版本。Gradle实际上会自动下载,在4.1版本中,它也会自动下载默认版本。

人们经常困惑的一件事是,为什么当他们没有使用NDK时,或者至少认为他们没有使用NDK时,这种情况会发生。在这种情况下,答案是你的一个依赖项包括本机库,这些库在打包到APK之前需要被剥离,以减小大小,而剥离来自NDK。

其他回答

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

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

在上一个版本的Gradle中,不需要在构建中定义NDK versión。成绩:

android {
    ...
    ndkVersion "21.0.6352462"
    ...
}

我们必须安装建议的versión

或者在Android NDK Location中定义当前可用的版本:

首先安装NDk从android studio和工具>sdk管理器>sdk工具,然后下载NDk版本和

比你当地的好。属性设置NDK路径 是这样的:

ndk.dir = /用户/ {yourUserName} /图书馆/ Android / sdk / ndk / 21.4.7075529

[我的错误:请求的ndk版本22.0.7026061与ndk.dir请求的版本20.0.5594570不匹配]

我的解决方案:在不同的地方似乎有不同的ndk版本

请查看以下相同的详细信息:请转至

项目结构=> SDK位置=> NDK位置(确保检查一个正确的NDK版本)

2)项目结构=>模块= NDK版本下的>(检查您在第一步中添加的相同版本) 步骤2的PFA图像

3)Gotoyour Android studio project=> go to local。属性文件=>检查NDK版本号

如果所有3个步骤都是正确的,并且当前有一个正确的NDK版本,那么你的错误就解决了。

注意:一定要同步项目文件,清理项目,重建项目。

希望这能解决你的问题!!编码快乐:)

在构建中将类路径版本更改为3.5.0。Gradle,项目级别。

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
}

我也有同样的问题,但已经解决了。