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


当前回答

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中,不需要在构建中定义NDK versión。成绩:

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

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

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

为了解决这个问题,你必须在build.gradle中向IDE指示NDK的版本。在本例中,它应该是版本21.0.6113669。例如:

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.remed_mobile"
    minSdkVersion 16
    targetSdkVersion 28
    ndkVersion '21.1.6352462'
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}

如果您没有指明您的版本号,那么IDE将接受一个默认版本。如果你升级了gradle,那么它可能找不到正确的版本。

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

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

我也得到了下面的错误

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

我刚刚添加了我的本地NDK版本的应用程序级别构建。Gradle文件已解决。

    android {
        ndkVersion "My Available version here"  (my case it 21.3.6113669)
    }

flutter clean 
flutter pub get

我也有同样的问题,过了一段时间我找到了一个临时的解决方案。 将NDK文件夹重命名为NDK -bundle。 在你的项目中去当地。在sdk.dir之前添加这一行:

ndk.dir=<path to your ndk folder>

我:

ndk.dir=G\:\\SDK\\ndk-bundle
sdk.dir=G\:\\SDK

我希望它能帮助你