Kotlin插件错误:无法为类MyTask生成代理类

时间:2018-07-02 15:09:45

标签: gradle kotlin

我已经创建了用Kotlin编写的Gradle插件,但是在将其包含到项目中之后,我遇到了以下错误:

Failed to apply plugin [id 'my-plugin']
    Could not generate a proxy class for class MyTask

这是我插件的代码,我正在使用自定义gradle任务

class MyPlugin : Plugin<Project> {

  override fun apply(project: Project) {
    with(project.tasks) {
        create("uploadTask", MyTask::class.java)
    }
  }
}

class MyTask : DefaultTask() {

  @TaskAction
  fun run() {
      println("Running ...")
  }
}

1 个答案:

答案 0 :(得分:3)

运行./gradlew build --stacktrace时找到了原因

Caused by: java.lang.VerifyError: Cannot inherit from final class ....

由于默认情况下kotlin中的class是final,因此解决方案很容易将我的任务声明更改为:

open class MyTask : DefaultTask()