Gradle的版本差异导致无法编译:Could not initialize class com.android.build.gradle.internal.TaskManager

article/2025/8/26 12:52:39

运行项目报错:Could not initialize class com.android.build.gradle.internal.TaskManager

 我这边的原因是少了SDK的包和JDK版本不对。

我们先区分下gradle version与gradle plugin version。如果对此不了解,经常会由于Gradle的版本号问题造成项目无法编译;7.0以前这两个插件的版本号是不同步,7.0以后进行了版本的同步。

Gradle

Gradle 不是Google开发的。Gradle是有专门的团队进行开发维护。并且完全开源的自动化构建工具。IDEA 默认集成了该工具。可以方便的帮我们将项目代码进行构建打包,是一个脚本工具。理论上来说,它可以用来构建任何项目(如java项目,ios项目),是一个构建工具。它可以与任何类型的IDE集成(如ecllipse,android studio),方便的帮我们将项目代码进行构建打包,是一个脚本工具。

配置gradle version的地方在项目目录下的gradle-wrapper.properties或者在File->Project Structure->project menu里的gradle version

Android Gradle 插件

Android Studio 是采用Gradle 进行代码的打包编译以及构建项目的。但是Gradle是一个开源的自动构建工具,是面向全平台的。所以Android 在基于Gradle进行了二次开发,整合了几项专门用于构建Android应用的功能。而该工具命名为:com.android.tools.build:gradle:xxxx 。

配置android gradle version的地方在根build.gradle里或者在File->Project Structure->project menu里的android gradle plugin version

 Android Gradle 是需要依赖于gradle的,所以两个之间的对应关系比较重要

版本对应

Android Gradle 插件版本所需的 Gradle 版本
1.0.0 - 1.1.32.2.1 - 2.3
1.2.0 - 1.3.12.2.1 - 2.9
1.5.02.2.1 - 2.13
2.0.0 - 2.1.22.10 - 2.13
2.1.3 - 2.2.32.14.1 - 3.5
2.3.0+3.3+
3.0.0+4.1+
3.1.0+4.4+
3.2.0 - 3.2.14.6+
3.3.0 - 3.3.34.10.1+
3.4.0 - 3.4.35.1.1+
3.5.0 - 3.5.45.4.1+
3.6.0 - 3.6.45.6.4+
4.0.0+6.1.1+
4.1.0+6.5+
4.2.0+6.7.1+
7.07.0+

Android Gradle 7.0+更新

但是从7.0 开始,Android 将会有很大的改变。

工具最低版本默认版本
Gradle7.0.27.0.2
SDK Build Tools30.0.230.0.2
NDK不适用21.4.7075529
JDK1111

Gradle版本和Java版本对应关系

Java版本第一个支持它的Gradle版本
82.0
94.3
104.7
115.0
125.4
136.0
146.3
156.7
167.0
177.3
187.5



作者:独自闯天涯的码农
链接:https://www.jianshu.com/p/4042fd18f9fa
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


http://www.hkcw.cn/article/CILNyaZkJQ.shtml

相关文章

Gradle版本目录(Version Catalog)

Gradle版本目录(Version Catalog) “版本目录是一份依赖项列表,以依赖坐标表示,用户在构建脚本中声明依赖项时可以从中选择。” 我们可以使用版本目录将所有依赖项声明及其版本号保存在单个位置。这样,我们可以轻松地在模块和项目之间共享依…

android开发之NDK配置开发

1、打开项目后,一次点击Tools>SDK Manager 2、点击SDK Tools标签页 3、选中NDK(Side by Side)和CMake复选框 4、点击OK 此时系统会显示一个对话框,告诉你NDK软件包占用了多少磁盘空间 5、点击OK 6、安装完成后,点击…

如何在没有计算机的情况下将联系人从 iPhone 传输到安卓

如果您正在考虑从 iPhone 迁移到Android ,您可能想知道如何在不丢失任何重要信息的情况下转移联系人。您可能还想避免使用电脑进行此过程。幸运的是,有几种方法可以教您如何在不使用电脑的情况下将联系人从 iPhone 迁移到Android ,而且这些方…

如何将数据从 iPhone 传输到 vivo 的 4 种方法

在运行不同操作系统的 iPhone 和 Vivo 之间传输数据时,需要谨慎。廉价或不安全的在线解决方案可能会失败,并使您的个人数据面临风险。避免被“免费”和“快速”服务的承诺所诱惑,因为这可能会危及您的数据。 在本文中,我们整理了…

图片转换之heic转jpg(使用ImageMagick)

缘由:iphone的图库,用jpg拍照保存后内存占比较大,heic格式会微缩不少。问题来了,电脑不能直接小图预览heic。 分析:现在就是解决小图预览的问题(大图用wps可以看) 解决:查找了一些…

Android导入项目时Gradle下载速度慢\超时\失败解决方法

Android导入项目时Gradle下载速度慢\超时\失败解决方法 原因分析: 这是因为Gradle源服务器在国外,下载速度自然很慢 distributionUrlhttps\://services.gradle.org/distributions/gradle-7.3.3-bin.zip 解决方法: 最可靠的方法就是换源 &…

从 iPhone 传输到Android 3 种简单方法

使用 iPhone 多年后,也许您想切换到Android并尝试一些新的东西?不管您是否相信,如果您确实做出了这样的决定,您很可能会遇到将数据从 iPhone 传输到Android的问题。由于手机数据对于当今的人们来说非常重要,因此当您切换到另一部手机时丢失它是不明智的。 在本指南中,您…

Contactile三轴触觉力传感器的滑动与摩擦力计算能力

Contactile三轴触觉力传感器通过先进的技术设计,实现了滑动与摩擦力的精准计算。传感器通过分析滑动与振动信号的关联,动态计算摩擦系数,同时捕捉力、扭矩及初始滑动等多维数据。这种能力为机器人提供了高度灵活的触觉反馈,满足复…

国产分子动力学引擎——GPUMD本地部署教程:专为 NVIDIA GPU 加速设计

一、简介 GPUMD 是一款开源分子动力学模拟软件,由渤海大学樊哲勇教授团队主导开发,2017年首发1.0版本,持续迭代至3.9.4版本,是国内首个完全基于GPU加速的开源分子动力学软件,专为 NVIDIA GPU 加速设计。它使用 CUDA 提…

PostgreSQL 备份与恢复策略

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

2025年渗透测试面试题总结-匿名[校招]高级安全工程师(代码审计安全评估)(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。、 目录 匿名[校招]高级安全工程师(代码审计安全评估) 渗透基础 1. 自我介绍 2. SQL注入写Shell(分数…

Cmake编译glog成功并在QT中测试成功步骤

glog是开源的日志记录系统,下载地址GitHub - google/glog: C implementation of the Google logging module 跟gflags有点相似,编译和测试过程比较周折,所以记录下来具体的编译和测试步骤。 编译环境:WindowsCmakeVs2022Qt5.14.…

【Linux】网络--传输层--深入理解TCP协议

个人主页~ 深入理解TCP协议 一、TCP数据传输问题1、发送数据丢包问题---重传机制(一)客户端数据发送丢包(二)服务器确认应答丢包(三)时间间隔问题 2、三次握手问题---奇数次握手(一)…

深入理解 SQL 的 JOIN 查询:从基础到高级的第一步

在处理数据库时,我们常常需要从多个表中提取数据。比如想知道一个城市的天气情况,同时又想知道这个城市的具体位置。这就需要将 weather 表和 cities 表结合起来查询。这种操作在 SQL 中被称为 JOIN 查询。 现在看下两种表的情况 1.weather 表&#xff…

【无标题】C++23新特性:支持打印volatile指针

文章目录 前言背景与问题C23的解决方案实现原理使用场景硬件开发多线程调试 总结 前言 在C开发中,volatile关键字常用于修饰变量,以确保编译器不会对这些变量进行优化,从而保证程序能够正确地与硬件交互或处理多线程环境下的特殊变量。然而&…

RPG15.轻攻击

上一篇已经制作了装备和卸下武器 接下来开始做战斗系统 1.先添加Tag ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_EquipAxe);ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_UnEquipAxe); ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Play…

20250529-C#知识:继承、密封类、密封方法、重写

C#知识:继承、密封类、密封方法、重写 继承是面向对象的三大特性之一,通过继承能够减少重复代码的编写,有助于提升开发效率。 1、继承 C#不同于C,只支持单继承当子类出现与父类同名的成员时,父类成员被隐藏&#xff0…

第30次CCF计算机软件能力认证-1-重复局面

时间限制: 1.0 秒 空间限制: 512 MiB 下载题目目录(样例文件) 题目背景 国际象棋在对局时,同一局面连续或间断出现3次或3次以上,可由任意一方提出和棋。 题目描述 国际象棋每一个局面可以用大小为 88…

【计算机网络】第2章:应用层—DNS

目录 一、PPT 二、总结 DNS(域名系统)详解 (一)DNS核心概念 (二)DNS查询过程(重点❗) (三)DNS资源记录(RR)类型…

[C]基础18.自定义类型:联合和枚举

博客主页:向不悔本篇专栏:[C]您的支持,是我的创作动力。 文章目录 0、总结1、联合体(共用体)1.1 联合体类型的声明1.2 联合体的特点1.3 联合体大小的计算1.4 联合体的应用场景1.5 联合体练习:判断机器字节序…