Ошибка Dokka: com.intellij.psi.impl.source.PsiClassImpl не может быть приведен к com.intellij.psi.PsiJavaFile - PullRequest
0 голосов
/ 19 июня 2019

У меня есть сборка, которая генерирует артефакты Android (в основном .aar) и пакеты в dokka -генерированных документах (кодовая база - Kotlin + Java).

С некоторыми недавними изменениями dokka начал давать сбойс этой загадочной ошибкой:

> Task :mylib:dokka FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mylib:dokka'.
> com.intellij.psi.impl.source.PsiClassImpl cannot be cast to com.intellij.psi.PsiJavaFile

Любая помощь будет оценена.В настоящее время я не могу найти источник этого.

1 Ответ

0 голосов
/ 19 июня 2019

Я не могу определить причину проблемы, но могу с уверенностью сказать, что Dokka имеет некоторые проблемы с классами аннотаций .

В своих изменениях я изначально ввел новый класс аннотаций на основе Android @IntDef внутри абстрактного класса (вместе со связанными вспомогательными методами), написанный на Java.

Эти 2 шага, похоже, помогли:

  1. Переключение на Kotlin для реализации класса аннотаций, затем определение класса аннотаций в корневой области файла (а не в качестве внутреннего элемента класса).

  2. Подавление пакета аннотации в конфигурации Dokka, т.е. -

dokka {
  ...

  packageOptions {
    prefix = "com.mylib.myannotation"
    suppress = true
  }
}

Конечным результатом является то, что документация не может ссылаться на аннотированный класс (что неудивительно, поскольку он был подавлен), но генерация javadoc полностью выполнена.

...