Kotlin注释处理器:无法使其工作

我的gradle构建:

buildscript { ext.kotlin_version = '1.1.4-3' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'java' apply plugin: 'kotlin' apply plugin: "kotlin-kapt" sourceCompatibility = 1.8 repositories { mavenCentral() } kapt { processors = "libs.orm.codeGenerators.ModelProcessor" //PROCESSOR } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" compile "com.google.auto.service:auto-service:1.0-rc3" } 

处理器不在单独的模块中。

处理器什么也不做,在#process它只是抛出,看它是否工作。

 @AutoService(Processor::class) @SupportedSourceVersion(SourceVersion.RELEASE_8) class ModelProcessor : AbstractProcessor() { override fun process(annotations: MutableSet<out TypeElement>?, roundEnv: RoundEnvironment): Boolean { throw(Throwable("foo")) return true } override fun getSupportedAnnotationTypes() : MutableSet<String> { return mutableSetOf<String>("*") } } 

但绝对没有任何反应。 没有错误,没有。 我怎样才能使它工作?

在我的实践中, AutoService只是忽略了kotlin类。 你必须改用java类,或者编写你自己的META-INF:

main/resources/META-INF/services/javax.annotation.processing.Processor并包含: your.package.ModelProcessor