android - Gradle:创建一个任务来扩展来自Android项目的compileDebugJavaWithJavac任务

标签 android gradle android-gradle-plugin

我正在尝试在一个插件中创建一个任务,该任务将从Android插件扩展了“compileDebugJavaWithJavac”任务以用于gradle。

这是我自定义插件中包含的代码

project.task('compileAllJava', type: project.tasks.getByName('compileDebugJavaWithJavac')) << {} 

当我尝试应用此插件并执行此任务时,它给我类似这样的错误`配置项目':app'时发生问题。

org.gradle.api.tasks.compile.JavaCompile_Decorated cannot be cast to java.lang.Class`



我可以正确地扩展任务吗?还是有可能从我自己的插件中扩展此任务?

最佳答案

您需要检查何时将compileDebugJavaWithJavac添加到任务集合中。试试这个

tasks.whenTaskAdded { task ->
  if (task.name.equals("compileDebugJavaWithJavac")) {
     project.task('compileAllJava', type: JavaCompile, dependsOn: task) << {
        // your code here
     }
   }
}

检查此链接以查看所有任务类型

https://docs.gradle.org/current/dsl/

关于android - Gradle:创建一个任务来扩展来自Android项目的compileDebugJavaWithJavac任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36249825/

相关文章:

android - 建议使用较新的 Android Gradle 插件来使用 compileSdk = 32

android - 在 android eclipse 中找不到与 com.android.support :appcompat-v7:+. 匹配的任何版本

android - 在移动应用程序中结合 html 前端和 python "back-end"

Android Retrofit - onProgressUpdate 用于显示进度通知

android - 使用 Gradle 任务运行单元测试时出现 NoClassDefFoundError

java - 在命令行中运行 "./gradlew <task>"时,读取的是什么文件?

android - 使用Robolectric而不进行多义处理?

更新到 3.0.0 后的 Android Studio "error: failed to read metadata"

android-gradle-plugin - 如何配置/运行 gradle 以构建和组装首先运行所有单元测试的发布类型

java - 当我从一个 fragment 滑动到另一个 fragment 时,我的应用程序崩溃了(错误 : canScrollHorizontally()' on a null object reference)