解决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版本没有强依赖的项目,现在固定在一个版本上,其他开发者也必须有这个具体版本才能正常编译运行。

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

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

关注公众号:BennuCTech,获取更多干货!

猜你喜欢

转载自blog.csdn.net/chzphoenix/article/details/124123977
今日推荐