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) Gradles 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.问题原因这是一个类加载器冲突问题Gradle 的类 DefaultProject 被错误地尝试转换成 Apache Ant 的 Project 类这通常是由于构建脚本中使用了错误的导入语句导致的这两个类虽然都叫 Project但来自完全不同的包 1. Gradle Project: org.gradle.api.Project 2. Ant Project: org.apache.tools.ant.Project处理策略将导入的 Ant 的 Project 修改为 Gradle 的 Project// 原来是这样importorg.apache.tools.ant.Project// 修改为这样importorg.gradle.api.Project