Kotlin类在variant.javaCompiler.doLast上不可用

时间:2018-10-09 16:01:41

标签: java android android-studio gradle kotlin

我试图通过AspectJ编织Java和Kotlin类文件:

android.applicationVariants.all { variant ->

    JavaCompile javaCompile = variant.javaCompiler
    javaCompile.doLast {
        String[] args = ["-showWeaveInfo",
                         "-1.8",
                         "-inpath", javaCompile.destinationDir.toString(),
                         "-aspectpath", javaCompile.classpath.asPath,
                         "-d", javaCompile.destinationDir.toString(),
                         "-classpath", javaCompile.classpath.asPath,
                         "-bootclasspath", project.android.bootClasspath.join(
                File.pathSeparator)]

我已确保将Kotlin路径包括在适当的路径中,但不会处理任何Kotlin类。

如何确保以这种方式处理Kotlin类文件?

1 个答案:

答案 0 :(得分:1)

该任务称为KotlinCompile,因为Gradle Kotlin DSL不同(这里是examples)。

不确定是否可以直接迁移脚本,但是可能是variant.kotlinCompiler

或者,也可以像下面那样挂接这些任务:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    doLast {

    }
}

.kt未被处理是因为Java编译器无法识别它们。会假设您可能需要KAPT才能处理这些AspectJ注释。