注解处理
Kotlin插件支持注解处理,就像Dagger和DBFlow。为了让它们可以处理Kotlin类,需要使用kotlin-kapt插件:
apply plugin: 'kotlin-kapt'
或者从Kotlin 1.1.1开始,你可以使用DSL:
plugins {
id "org.jetbrains.kotlin.kapt" version "<version to use>"
}
然后使用kapt添加各自的依赖:
dependencies {
kapt 'groupId:artifactId:version'
}
如果你之前使用了android-apt插件,将其从build.gradle文件中删除,并替换成apt配置。如果你的工程包含Java类,kapt也可以处理它们。
如果你在androidTest或test代码中使用注解,对应的kapt配置就是kaptAndroidTest和kaptTest。需要注意的是kaptAndroidTest和kaptTest是kapt的子类,因此你可以只提供kapt依赖。
一些注解处理器(比如AutoFactory)依赖于签名的严格的类型。默认情况下,kapt会替换每个未知的类型(包括生成类的类型)为NonExistentClass,但是你可以改变这种行为。添加额外的flag到build.gradle文件来开启错误类型推断:
kapt {
correctErrorTypes = true
}
需要注意的是这个选项是实验性的,默认情况下是未开启的。