Android Studio Warning: использование несовместимых плагинов для обработки аннотаций
После обновления версии Android Studio до версии 2.3 у меня есть предупреждение:
Предупреждение: использование несовместимых плагинов для обработки аннотаций: андроид-кв. Это может привести к неожиданному поведению.
Любые решения? Мое приложение перестало работать...
Ответы
Ответ 1
Зависимости уровня приложения gradle должны включать (в соответствии с инструкциями на веб-сайте butterknife):
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
Вы можете удалить строку:
apply plugin: 'com.neenbedankt.android-apt'
Обработка аннотаций появилась в плагине Android gradle (версии 2.2 и более поздних), поэтому теперь больше не нужно использовать вышеупомянутый плагин, если используете эту версию gradle или больше.
Если вы хотите узнать, как включить и выключить обработку аннотаций, и как установить этот параметр:
Настройки > Сборка, выполнение, развертывание > Компилятоp > Обработчики аннотаций
Ответ 2
В моем проекте я использую, среди прочего, Butter Knife and Immutables. После добавления Immutables я получил следующее предупреждение
Предупреждение: использование несовместимых плагинов для обработки аннотаций: андроид-кв. Это может привести к неожиданному поведению.
и ButterKnife перестали работать.
Моя конфигурация была следующей:
build.gradle(Project: MyApplication)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
build.gradle(модуль: приложение)
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
...
dependencies {
...
// Butter Knife
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
// Immutables
apt 'org.immutables:value:2.4.4'
provided 'org.immutables:value:2.4.4'
provided 'org.immutables:builder:2.4.4'
provided 'org.immutables:gson:2.4.4'
}
После изменения
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
to
apt 'com.jakewharton:butterknife-compiler:8.5.1'
предупреждение исчезло, и все работает так, как должно.
UPDATE
Как отметил Марк, в версии Gradle версии 2.2 был включен процессор аннотации, поэтому нет причин предоставлять дополнительный файл.
Итак:
1) Удалите путь класса для apt из build.gradle(Project: MyApplication)
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
2) Извлеките вилку из build.gradle(Module: app)
apply plugin: 'android-apt'
3) Измените зависимости от apt к новому аннотации Processor
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
annotationProcessor 'org.immutables:value:2.4.4'
Ответ 3
Чтобы добавить к ответу @Milan, если вы использовали библиотеку hotchemimissionsdispatcher в файле gradle уровня вашего приложения, вы должны заменить его следующим образом:
замещать
apt 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'
с
annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'
Ответ 4
В buildscript --> dependencies
Project Gradle buildscript --> dependencies
блок buildscript --> dependencies
удалите вторую строку classpath
buildscript --> dependencies
:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
А в блоке dependencies
Gradle приложения измените эти строки, используйте api
и annotationProcessor
:
api 'com.google.dagger:dagger:2.19'
annotationProcessor 'com.google.dagger:dagger-compiler:2.19'
Кроме того, удалите это:
//apply plugin: 'com.neenbedankt.android-apt'