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

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

После обновления с 2.2 до 2.3 я вижу это предупреждение

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

и когда я пытаюсь скомпилировать проект, я вижу эту ошибку компиляции

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

Как я могу решить эту проблему без переопределения предыдущей версии gradle? Есть ли какие-либо обновления для android-apt, которые могут решить эту проблему?

4b9b3361

Ответ 1

Плагин android-apt устарел.
Проверьте здесь руководство по миграции:

Начиная с версии 2.2 Android версии Gradle, все функциональные возможности, ранее предоставленные андроид-ап, теперь доступны в плагине 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, что и является причиной этой проверки.

Ответ 2

Для меня у меня была эта ошибка при использовании библиотеки Contentful Vault, которая указывает, что вы включаете:

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

и

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

Что вам нужно сделать, это DELETE apply plugin: 'com.neenbedankt.android-apt'

а затем CHANGE:

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 для последних версий

Ответ 3

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"