Android buildSrc 模块问题:Gradle 的类 DefaultProject 被错误地尝试转换成 Apache Ant 的 Project 类

  • 在 Android 开发中,创建了 buildSrc 模块,并创建了自定义插件,构建时,出现了如下错误信息

    class org.gradle.api.internal.project.DefaultProject_Decorated cannot be cast to class org.apache.tools.ant.Project (org.gradle.api.internal.project.DefaultProject_Decorated is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @26aa12dd; org.apache.tools.ant.Project is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @131276c2)
    class org.gradle.api.internal.project.DefaultProject_Decorated cannot be cast to class org.apache.tools.ant.Project (org.gradle.api.internal.project.DefaultProject_Decorated is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @26aa12dd; org.apache.tools.ant.Project is in unnamed module of loader org.gradle.internal.classloader.VisitableURLClassLoader @131276c2)

    Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

    Re-download dependencies and sync project (requires network)
    The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

    Stop Gradle build processes (requires restart)
    Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

    In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

问题原因
  1. 这是一个类加载器冲突问题,Gradle 的类 DefaultProject 被错误地尝试转换成 Apache Ant 的 Project 类

  2. 这通常是由于构建脚本中使用了错误的导入语句导致的

    这两个类虽然都叫 Project,但来自完全不同的包

    1. Gradle Project: org.gradle.api.Project

    2. Ant Project: org.apache.tools.ant.Project

处理策略
  • 将导入的 Ant 的 Project 修改为 Gradle 的 Project
groovy 复制代码
// 原来是这样

import org.apache.tools.ant.Project
groovy 复制代码
// 修改为这样

import org.gradle.api.Project
相关推荐
城管不管20 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨20 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
summerkissyou198720 小时前
Android - 摄像头 - hal - 开发教程,例子,常见问题,分析方法,解决方案
android
豆瓣鸡20 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖20 小时前
Java深入解析篇九之NIO详解
java·网络·nio
summerkissyou198720 小时前
Android 16 架构图
android
The Chosen One98521 小时前
高进度算法模板速记(待完善)
java·前端·算法
神龙天舞200121 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql
极光代码工作室1 天前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen1 天前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言