Android-проект с файлами Java и Kotlin, каптом или аннотацией процессора? - PullRequest
0 голосов
/ 25 апреля 2018

Я хотел бы знать, если в Android проекте, смешивающем файлы Java и Kotlin , мы должны использовать annotationProcessor или kapt, или оба?

В моем понимании annotationProcessor должен использоваться для Java файлов, использующих аннотации для генерации кода, и kapt должен использоваться для Kotlin файлов с использованием аннотаций для генерации кода.

У меня есть проект, смешивающий оба языка, и я только заменил все зависимости annotationProcessor в build.gradle на kapt.Удивительно, но он собирается и, кажется, работает правильно, но я не понимаю, почему kapt работает хорошо даже с файлами Java ...

Может кто-нибудь объяснить мне?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

В 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.

Для получения более подробной информации: ссылка

0 голосов
/ 25 апреля 2018

Прежде всего, инструмент обработки аннотаций Kotlin (kapt) использует компилятор Java для запуска процессоров аннотаций.Если ваш проект содержит какие-либо классы Java, kapt позаботится о них. Kotlinlang рекомендует использовать kapt, если вы использовали annotationProcessor из поддержки Android ранее.

JetBrains имеет хорошую статью о том, как капт работает более подробно, егос 2015 года, но ДО ДЕЙСТВИЯ.

...