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
相关推荐
私人珍藏库17 分钟前
[Android] PocketPal -本地离线AI助手+大模型部署神器
android·人工智能·app·软件·多功能
折哥的程序人生 · 物流技术专研22 分钟前
第8篇:模板方法模式的优缺点与面试高频考点
java·设计模式·面试·模板方法模式·行为型模式·优缺点·扩充系列
爱笑鱼34 分钟前
Handler(三):主线程、HandlerThread、Binder 线程到底怎么区分?
android
w1395485642241 分钟前
鸿蒙实战:报告与雷达图 ReportDao
android·华为·harmonyos·鸿蒙系统
人道领域1 小时前
【0-1的agent进阶篇】Prompt 与上下文工程
java·开发语言·prompt·mcp
爱笑鱼1 小时前
Handler(二):MessageQueue 为什么不是普通队列?
android
KINGSEA_1681 小时前
AgentScope Java 2.0 架构解析
java
阿巴斯甜2 小时前
Android Studio 新版 Logcat
android
折哥的程序人生 · 物流技术专研2 小时前
Java 23 种设计模式:从踩坑到精通 | 备忘录模式 —— 快照与撤销,给对象装一个“后悔药”
java·设计模式·备忘录模式·行为型模式·java设计模式·从踩坑到精通·撤销重做
监督者修2 小时前
从零构建 GIS 数据引擎:方案驱动架构的设计与实践
android·架构·kotlin