Несумісні плагіни для android-apt після оновлення до Android Studio 2.3


101

Після оновлення з 2,2 до 2,3 я бачу це попередження

введіть тут опис зображення

і коли я намагаюся скласти проект, я бачу цю помилку компіляції

введіть тут опис зображення

Як я можу вирішити цю проблему, не переходячи до попередньої версії gradle? Чи є оновлення Android-apt, яке може вирішити цю проблему?

Відповіді:


179

android-aptПлагін застарів .
Ознайомтесь з посібником з міграції :

Що стосується плагіну Android Gradle версії 2.2, то вся функціональність, яку раніше забезпечував android-apt, тепер доступна в плагіні Android.

Ви можете видалити android-apt, дотримуючись посібника з міграції, щоб отримати еквівалентні функціональні можливості.

Важливі частини міграційного посібника :

  • Переконайтеся, що у вас є плагін Android Gradle 2.2 або новіший.
  • Видаліть android-aptплагін зі своїх сценаріїв побудови
  • Змініть всі apt, androidTestAptі testAptзалежно в їхньому новому форматі:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Також у плагіні Android Gradle є чітка перевірка цього, що саме ви бачите:

використання несумісних плагінів для обробки анотацій android-apt

Майбутні версії плагінів Android Gradle не будуть сумісні із способом android-aptроботи, що є причиною цієї перевірки.


Дякую! Я не знав, що придатність застаріла.
Бронкс

1
І в плагіні Android Gradle Google має чітку перевірку на це, що саме ви бачите. Майбутні версії Android Gradle не будуть сумісні з способом android-aptроботи, що є причиною цієї перевірки.
botteaap

де чек?
ericn

Я не маю жодних підходів, але все одно отримую це попередження. EDIT: Виявляється, це було царство
behelit

Я ніде не бачив NDROID-pt у своєму коді, але отримувала помилку. Що може бути проблемою?
Мубашар

47

Для мене у мене виникла ця помилка під час використання Vaultбібліотеки Contentful, яка визначає, що ви включаєте:

apply plugin: 'com.neenbedankt.android-apt'

і

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

Що вам потрібно зробити, це ВИДАЛИТИ apply plugin: 'com.neenbedankt.android-apt'

а потім змінити :

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

до

annotationProcessor 'com.contentful.vault:compiler:2.1.0'
annotationProcessor 'com.contentful.vault:core:3.0.1'

Ви завжди можете перевірити https://github.com/contentful/vault на наявність останніх версій


15
  1. Видаліть плагін

  2. Змінити:

    apt -> компілювати

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. У своєму build.gradle (додаток) додайте до defaultConfig:

vectorDrawables.useSupportLibrary = вірно


6

Piggybacking на @Gabriele Mariotti тут, оскільки його відповідь є досить точним і передбачає це, але не зазначає цього. Gradle також не пропонує це як допустимий варіант, хоча він також є. Еквівалент тестування для androidTestAptта testAptє androidTestAnnotationProcessorта testAnnotationProcessor.

Приклад:

testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

Слід змінити на

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"

1

Якщо у процесора анотацій є аргументи, можливо, доведеться також змінити це:

apt {
    arguments {
        KEY "VALUE"
    }
}

до цього:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.