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
相关推荐
w_zero_one10 小时前
算法--模拟
java·数据结构·算法
Javatutouhouduan10 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David10 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源10 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
秋天的怀念_David11 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool11226611 小时前
网络编程^
java
Thinker QAQ11 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
齐 飞12 小时前
idea中git误操作撤回git reset --hard ‘HEAD@{1}‘
java·git·intellij-idea
你的保护色12 小时前
多AS互联BGP4综合实验设计
java
xiaoshiquan120612 小时前
Gradle 复合构建:宿主项目直接依赖 SDK 源码模块的配置实践
android