Android студия 3.1 не распознает обработку аннотаций jar

Я пытаюсь внедрить свой собственный процессор аннотаций в мой проект студии Android. Все работает хорошо и компилируется, пока я не добавлю эту простую строку в блок build.gradle зависимости:

dependencies {
   .
   .
   .
   annotationProcessor(':processor')
}

В этот момент я получаю эту ошибку при компиляции:

Не удалось найти процессор. Требуется: project:app Поиск в файлах build.gradle

Я следовал бесконечным урокам и, похоже, ничто не поможет. Я только недавно обновился до AS 3.1 и думаю, может быть, это связано?

Вот структура проекта: (обратите внимание - здесь я добавляю процессор аннотаций в виде jar-файла. Я также прикрепил изображение, пытаясь сделать это как другой модуль и с тем же результатом)

Вот другое, я пытаюсь добавить его - создание процессора аннотаций в том же проекте с другим модулем и до сих пор не идет:

Некоторая дополнительная информация в фото... Структура проекта:

app.build:

processor.build:

аннотация:

Основная деятельность:

Реализация процессора:

1 ответ

Решение

Если у вас есть все внутри одного и того же артефакта - процессор аннотаций, его аннотации и классы библиотек, используемые пользователями процессоров, плагин Android Gradle требует, чтобы вы объявили две зависимости от одного и того же артефакта:

annotationProcessor project(':processor')
compile project(':processor')

или же

annotationProcessor files('libs/processor.jar')
compile files('libs/processor.jar')

Обратите внимание, что в будущем такая настройка может не поддерживаться. Желательно разделить ваш процессор на отдельный модуль и сделать так, чтобы он зависел от остального кода. После этого вы сможете объявить зависимости следующим образом:

annotationProcessor project(':processor') // processor-only jar
compile project(':processor-api') // annotations and classes for user code
Другие вопросы по тегам