Подтвердить что ты не робот

Android Studio Warning: использование несовместимых плагинов для обработки аннотаций

После обновления версии Android Studio до версии 2.3 у меня есть предупреждение:

Предупреждение: использование несовместимых плагинов для обработки аннотаций: андроид-кв. Это может привести к неожиданному поведению.

Любые решения? Мое приложение перестало работать...

4b9b3361

Ответ 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'