解决No version of NDK matched the requested version问题

简介: 一个本来好好的项目,突然在运行的时候报错:No version of NDK matched the requested version 21.0.6113669. Versions available locally: 20.1.5948944网上很多人建议在build.gradle中添加ndk,如下:android { ... ndkVersion '20.1.5948944' }复制代码也确实可以解决问题,但是本来一个对ndk版本没有强依赖的项目,现在固定在一个版本上,其他开发者也必须有这个具体版本才能正常编译运行。

前言


一个本来好好的项目,突然在运行的时候报错:

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

网上很多人建议在build.gradle中添加ndk,如下:


android { 
    ...
    ndkVersion '20.1.5948944' 
}
复制代码


也确实可以解决问题,但是本来一个对ndk版本没有强依赖的项目,现在固定在一个版本上,其他开发者也必须有这个具体版本才能正常编译运行。

我认为这并不是一个完美的解决方案,于是继续调查了一下。


gradle的坑


经过调查发现,这果然是gradle的一个坑,某大佬描述如下:


20年2月-6月发行的Android Gradle plugin 3.6-4.1之间的版本,如果项目有依赖ndk,可能存在编译不通过问题。4.1.0-beta01已修复该bug。

所以我觉得真正的解决方案应该是升级gradle,如果要升级gradle,就需要gradle和gradle plugin同时升级,而且二者之间存在版本对应,在之前两者的版本号并不一致,导致每次都需要进行查询。近期google终于将两者版本升级成一致的了,也就避免了每次去对照版本了,所以我将gradle和gradle plugin升级到7.0.x后就可以正常编译运行了,具体如下:


classpath 'com.android.tools.build:gradle:7.0.3'
复制代码



distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-bin.zip


目录
相关文章
You need libtool version 1.5.14 or newer to build
You need libtool version 1.5.14 or newer to build
133 0
|
Kubernetes Unix API
crictl version 问题
crictl version 问题
|
并行计算
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
190 0
成功解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgr
成功解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgr
成功解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgr
成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra
成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra
成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra
解决Minimum supported Gradle version is 3.3. Current version is 2.14.1问题
(创建于2017/5/16) 首先要搞懂两个概念,gradle版本和gradle插件版本,比如我现在as升级到了2.3,那么2.3就是gradle版本,2.14.1就是gradle插件版本,这两个概念的一一对应的,而之所以出现这个报错信息,就是因为当前项目的gradle插件版本是2.14.1,而gradle2.3对应的插件版本就是3.3,所以导致了报错。
8388 0
|
JavaScript 前端开发