Ломбок требует обработки аннотации
Я использую Android Studio 2.2 Preview 7, и плагин Lombok внезапно начал говорить:
Annotation processing seems to be disabled for the project X
и ссылку на настройки.
![введите описание изображения здесь]()
Нажатие на уведомление не приведет меня в нужное место.
Какое исправление для этого?
Ответы
Ответ 1
Настройки, открытые нажатием на уведомление, - это настройки Per Project
, и в этом случае это не то, что вам нужно.
Чтобы исправить это, перейдите к
-
File->Other Settings->Default Settings
- Развернуть
Build, Execution, Deployment
- Развернуть
Compiler
- В
Annotation Processors
проверить Enable annotation processing
- Вам может потребоваться повторно открыть проект, чтобы настройки вступили в силу.
- Enjoy
Для полной справки - скриншот с соответствующим экраном настроек:
![введите описание изображения здесь]()
Ответ 2
С более новыми версиями gradle достаточно набрать эти строки в блок зависимостей build.rad.radio.exe: `
compile "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"
Синхронизируйте проект с gradle, и он будет работать.
Ответ 3
Во-первых, я не думаю, что удаление вашего проекта с экрана приветствия может иметь какой-то эффект. Просто подумайте об этом, удалив ваш проект из "последних проектов" на этом экране, он не воссоздает его, как можно изменить настройки по умолчанию на существующий проект?
Чтобы включить обработку аннотаций в существующем проекте, вам ничего не нужно удалять. Перейдите к YourAwesomeProject/.idea/compiler.xml
и убедитесь, что у вас есть значение true "в следующем атрибуте: /project/annotationProcessing/[email protected]
.
Вот так:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
...
<annotationProcessing>
<profile default="true" name="Default" enabled="true"><!-- here -->
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>
Вам может потребоваться Файл → Недействительный кэш/Перезагрузка
Ответ 4
Для тех, кто имеет такую же проблему, используя Android Studio 2.4+, ее не решают, делая какие-либо намеки выше, кроме ответа Яниса Пейсениекса.
Откройте свою Intellij IDEA 2017/Android Studio 2.4+ и перейдите к (Windows)
- Файл- > Другие настройки- > Настройки по умолчанию
- Развернуть Сборка, выполнение, развертывание
- Разверните Компилятор и выберите Обработчики аннотации
- Убедитесь, что включена Включить обработку аннотаций и Получить процессоры из класса проекта
-
Наконец, не в последнюю очередь обновляйте ваши проекты build.gradle с помощью фрагмента ниже. Игнорируйте намек на то, что его устарело, поскольку оно не используется (до сих пор. См. issue).
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
}
Обнаружено, что существует очень простой способ сделать это без всех этих изменений выше!
Если вы установите процессор в gradle как ломбок, вы не будете использовать только при условии или testCompile. Вы должны добавить это, используя annotationProcessor, а также в свои зависимости. Пример:
dependencies {
provided "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"
}
Спасибо Джеку Уортону за масляный нож, где я понял, как он его решил.
Совет. Вам может потребоваться аннулировать кеш и перезапустить, чтобы заставить его работать для некоторых обработчиков аннотаций, таких как lombok.
Ответ 5
Вероятно, отмеченного ответа было достаточно в то время, но я немного боролся с Android Studio 3 и Lombok 1.16.18. В любом случае у меня сработало следующее
в app
> build.gradle
добавить следующее
compileOnly 'org.projectlombok:lombok:1.16.18'
annotationProcessor 'org.projectlombok:lombok:1.16.18'
вы можете начать получать другие ошибки, так что если вы в своем MyApplication
> lombok.config
добавляете следующие строки
lombok.addGeneratedAnnotation = false
lombok.anyConstructor.suppressConstructorProperties = true
если у вас нет lombok.config
просто lombok.config
его
Выше были предложены разработчиком lombok в следующих постах
addGeneratedAnnotation
suppressConstructorProperties
Ответ 6
Руководство по установке с сайта lombok (lombok настроено для Android) говорит, что мы должны сделать две вещи
1, установите плагин lombok
2, добавить зависимости gradle
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.6'
annotationProcessor 'org.projectlombok:lombok:1.18.6'
}
Но для меня плагин вызывает проблему. После того, как я отключил плагин, ошибка исчезла и ломбок все еще работает.
Ответ 7
Следуйте указаниям руководства по установке:
Gradle Убедитесь, что версия вашего плагина android >= 0.4.3 Используйте плагин gradle -lombok. Если вы не хотите использовать плагин, добавьте Ломбок в ваш блок зависимостей приложений (требуется Gradle v2.12 или новее):
dependencies {
compileOnly "org.projectlombok:lombok:1.16.18"
}
Android Studio Следуйте предыдущим инструкциям (Gradle). К тому же чтобы правильно настроить проект Gradle, вам необходимо добавить Плагин Lombok IntelliJ для добавления поддержки lombok для Android Studio:
- Перейдите в меню "Файл" > "Настройки" > "Плагины"
- Нажмите "Обзор репозиториев"...
- Поиск плагина Lombok
- Нажмите "Установить плагин". Перезапустите Android Studio
https://projectlombok.org/setup/android
Ответ 8
Начиная с версии Android Studio v3.5 (август 2019 года) и ранее, настройки для процессора аннотаций отсутствовали.
Однако этого достаточно для определения в build.gradle в разделе зависимостей:
dependencies {
...
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
...
}
Если Android-студия все еще жалуется на "Lombok требует обработки аннотаций", для меня это была переустановка плагина Lombok и "Invalidate Caches/Restart", которые устранили проблему.