java - kotlin 类在 variant.javaCompiler.doLast 上不可用

标签 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 类文件?

最佳答案

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

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

或者,可以类似地挂接到这些任务:

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

    }
}

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

关于java - kotlin 类在 variant.javaCompiler.doLast 上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725097/

相关文章:

android - DalvikVM 上的 CLI 在 JNI 库上失败

Android Studio + Robolectric + Gradle 找不到类异常

android-studio - Android Studio 说我没有 Android Support Repository,但我有

java - 在我的代码确认我删除了所有新行后,为什么我的输出仍然显示新行?

Java 将图像填充到标签中

android - Eclipse ADT 版本需要更新 22.6.2 或更高版本,但我已经更新了它

android - 所有库必须使用相同的版本

java - 调用需要权限,在尝试获取位置时可能会被用户拒绝

java - 如何找到所有可能的正则表达式匹配

java - Hibernate - 如何级联删除分离的对象