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

Posted BennuCTech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决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,获取更多干货!

以上是关于解决No version of NDK matched the requested version问题的主要内容,如果未能解决你的问题,请参考以下文章

Android studio :No version of NDK matched the requested version

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

INSTALL_FAILED_NO_MATCHING_ABIS错误解决

解决java compiler level does not match the version of the installed java project facet

Java compiler level does not match the version of the installed Java project facet.解决方法

maven -- 问题解决Java compiler level does not match the version of the installed Java project facet(示