Созданный во время компиляции класс отображается как несуществующий в IntelliJ

Мотивация:

Я хотел бы попробовать, если обработка аннотации во время компиляции соответствует моей проблеме. Это должно работать из коробки, без аргументов компилятора и т. Д.


Текущее состояние:

Я имею:

  • Аннотация
  • Процессор аннотаций
  • .Jar, содержащий оба из них, и файл javax.annotation.processing.Processor, содержащий FQCN моего процессора в META-INF/services

Что должно произойти:

  • Это должно автоматически определить процессор
  • Он должен обработать аннотацию и создать новый класс (WiredAnnotated)
  • Я должен иметь возможность использовать этот класс в один этап компиляции (не несколько этапов)
  • Я не хочу, чтобы редактор принимал этот класс (например, http://androidannotations.org/ управляет этим)

Что на самом деле происходит:

  • Он автоматически определяет процессор
  • Создает новый класс (в out/production/*/generate /)
  • Я могу использовать этот класс
    • Исходный код выглядит правильно
    • При декомпиляции тоже выглядит нормально
  • Редактор не может разрешить класс (см. Скриншот)

Что я пробовал:

  • Перезапуск IntelliJ
  • Недействительные кэши
  • Проверка на выход процессора аннотаций

Скриншот:

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

У кого-нибудь есть идея / подсказка о том, что я делаю неправильно? Я пропустил информацию, которая могла бы помочь мне?

Заранее спасибо, до

1 ответ

Решение

Ну, вам нужно добавить вас out/production/*/generated/ в исходную папку проектов. Итак, IntelliJ будет знать о ваших сгенерированных классах.

Вы можете сделать это, щелкнув правой кнопкой мыши по каталогу> Отметить каталог как источник root

или же

Структура проекта (F4) > Модули> вкладка "Источники"> "Исходные папки" должны содержать все каталоги с исходными кодами, сгенерированные один включает.

В андроиде есть gen dir в корневой папке, но обратите внимание, он светится синим или зеленым цветом, что означает, что он помечен как исходная папка, он также виден в структуре проекта> Модули. Это содержит R, BuildConfig а также Manifest,

Другие вопросы по тегам