Несовместимые плагины для Android-apt после обновления до Android Studio 2.3
5 ответов
android-apt
плагин устарел.
Проверьте здесь для руководства по миграции:
Начиная с версии 2.2 плагина Android Gradle, все функции, которые ранее предоставлялись 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
работает, что является причиной для этой проверки.
Для меня, у меня была эта ошибка при использовании Contentful's Vault
библиотека, которая указывает, что вы включаете:
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 наличие последних версий
Удалить подходящий плагин
Изменить:
apt -> compile
testApt -> testAnnotationProcessor
androidTestApt -> androidTestAnnotationProcessor
В вашем build.gradle (app) добавьте в defaultConfig:
vectorDrawables.useSupportLibrary = true
Перепутывание на @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"
В случае, если обработчик аннотации имеет аргументы, можно также изменить это:
apt {
arguments {
KEY "VALUE"
}
}
к этому:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ['KEY': 'VALUE']
}
}
}
}