解决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


目录
相关文章
|
机器学习/深度学习 人工智能 算法
一文了解人工智能中常用的优化算法
优化算法包含很多种,如果按梯度类型进行划分,可以分为有梯度优化算法和无梯度优化算法,在大多数人工智能技术中常用有梯度优化算法,当然也会有些场景也会用到无梯度优化算法,比如在强化学习中会用到黑盒优化算法cma-es、贝叶斯优化等,有些时候也会用到遗传算法和粒子群优化算法。本文主要讲解机器学习\深度学习中一些常用的优化算法,梯度下降法、动量法momentum、Adagrad、RMSProp、Adadelta、Adam,介绍不同算法之间的关联和优缺点,后续会继续分享其他的算法,
一文了解人工智能中常用的优化算法
|
9月前
|
Dart 开发工具 Android开发
Flutter PC 应用开发指南:从环境搭建到实战避坑
本文系统介绍如何在 Windows 平台使用 Flutter 开发 PC 应用,涵盖环境搭建、项目创建、插件兼容性、原生功能调用、签名发布、常见问题解决及性能优化等全流程,助你高效构建跨平台桌面应用,少走弯路。
3016 5
|
10月前
|
JavaScript 开发工具 Android开发
如何在原生 App 中调用 Uniapp 的页面?
如何在原生 App 中调用 Uniapp 的页面?
2288 138
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
1841 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
Python
使用pycharm 开发streamlit的项目启动
要在 PyCharm 中配置 Streamlit 环境并调试应用,请按以下步骤操作:1. 确保 PyCharm 配置了 Python 解释器并安装 Streamlit 包(File -> Settings -> Project -> Python Interpreter)。2. 配置调试运行设置(Run -> Edit Configurations,添加 Python 配置并命名)。3. 选择新配置并点击调试按钮启动应用。
2417 23
|
IDE Java 开发工具
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
2601 1