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


当前回答

升级到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在我工作的项目中是一个已经存在的需求!

在build.gradle(app)中添加这一行

android {

ndkVersion 21 6113669 0。”

}

这样问题就解决了

https://github.com/gradle/gradle/issues/12440#issuecomment-606188282

在项目级别build.gradle中替换gradle类路径

   classpath 'com.android.tools.build:gradle:4.1.0'

在gradle-wrapper。属性添加这一行

distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
Android Studio -> Preferences -> System settings -> Android SDK -> Got to SDK tools  and remove NDK(Side by Side) and apply.

 ndkVersion "21.0.6113669" ///  <<---Add this in your android -> app -> build.gradle file.

  buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
    ndkVersion "21.0.6113669" 

我也面临同样的问题。然后我在这里找到了开发人员参考资料

所以,问题开始于gradle 3.6版。在3.6之前,没有指定默认的ndk。因此,任何版本的ndk都可以正常工作。但是在添加默认版本后,如果我们没有在build中添加任何ndkVersion。Gradle然后它搜索默认版本的ndk。

在我的情况下,我的gradle版本是3.6.3和ndk安装21.0.6113669,我没有在我的build.gradle中定义ndkVersion。所以,它搜索默认的ndkVersion“20.0.5594570”根据我的gradle版本,给了我同样的错误。所以,我只是在我的构建中添加了ndkVersion“21.0.6113669”。Gradle文件和错误消失。