Несовместимые плагины для android-apt после обновления до Android Studio 2.3
После обновления с 2.2 до 2.3 я вижу это предупреждение
![введите описание изображения здесь]()
и когда я пытаюсь скомпилировать проект, я вижу эту ошибку компиляции
![введите описание изображения здесь]()
Как я могу решить эту проблему без переопределения предыдущей версии gradle?
Есть ли какие-либо обновления для android-apt, которые могут решить эту проблему?
Ответы
Ответ 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"