AndroidプロジェクトミキシングJavaおよびKotlinファイルで、annotationProcessorまたはkapt、あるいはその両方を使用する必要があるかどうかを知りたいですか?
私の理解では、コード生成に注釈を使用するJavaファイルにはannotationProcessorを使用する必要があり、Kotlinにはkaptを使用する必要があります=コード生成に注釈を使用するファイル。
両方の言語が混在するプロジェクトがあり、build.gradleのすべてのannotationProcessor依存関係をkaptに置き換えただけです。驚いたことに、それはビルドされ、正しく実行されているようですが、kaptがJavaファイル...
誰かが私に説明できますか?
ありがとうございました
まず、Kotlin注釈処理ツール(kapt)はJavaコンパイラを使用して注釈プロセッサを実行します。プロジェクトにJavaクラスが含まれている場合、kaptが処理します Kotlinlang Androidサポート前からkapt
を使用した場合は、annotationProcessor
を使用することをお勧めします。
JetBrainsには素敵な 記事 kaptがどのように機能するかについての詳細があり、2015年からですが最新です。
Javaでは、次のようにannotationProcessor(またはapt)依存関係を指定できます。
dependencies {
...
annotationProcessor "com.google.dagger:dagger-compiler:$dagger-version"
}
Kotlinでは、kotlin-kapt
プラグインを追加してkaptを有効にし、annotationProcessor
をkapt
に置き換える必要があります。
apply plugin: 'kotlin-kapt' //Must include
dependencies {
...
kapt "com.google.dagger:dagger-compiler:$dagger-version"
}
それで全部です! kaptがJavaファイルとkotlinファイルの両方を処理するため、annotationProcessorの依存関係を維持する必要がないことに注意してください。
詳細: link