Созданный во время компиляции класс отображается как несуществующий в 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
,