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
相关推荐
最强小杰5 小时前
gpt-5.6-sol 频繁报 503 怎么办?区分容量熔断和限速 429 的排查方法 + 可复用 retry wrapper
java·人工智能·gpt·ai
夜雪一千7 小时前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb
吠品7 小时前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
亚历克斯神8 小时前
智能搜索系统的升级复盘——从 Elasticsearch 到混合检索的检索质量提升
java·spring·微服务
金銀銅鐵9 小时前
[Java] 一个方法最多可以有多少个入参?
java·jvm
哭哭啼10 小时前
JAVA服务问题诊断
java·开发语言·jvm
Sayuanni%310 小时前
SpringBoot 从注解到源码:核心知识点总结
java·spring boot·后端
坚定信念,勇往无前10 小时前
Maven 私有仓库-nexus
java
Minner-Scrapy10 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶11 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法