ошибка: пакет сгенерирован. Схема не существует - PullRequest
0 голосов
/ 21 июня 2019

В моем приложении для Android у меня есть процессор аннотаций, который генерирует файлы с использованием JavaPoet и помещает их в пакет generate.schema.

Файлы генерируются правильно. Всякий раз, когда я использую сгенерированный файл, например,

GeneratedFile.someGeneratedMethod();

Я получаю следующую ошибку:

error: package generated.schema does not exist.

Но если я включу полное имя класса, а не импортирую, как это так

generated.schema.GeneratedFile.someGeneratedMethod();

код компилируется и запускается без ошибок.

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

Файлы, созданные другими библиотеками, включая Realm и DataBinding, работают правильно, как и ожидалось.

Генерация файла:

используя JavaPoet, я запускаю следующий код.

if (roundEnvironment.processingOver()) {
    for (TypeElement element : apiList) {
        TypeSpec clazz = generateFile(element);

        JavaFile.builder(NamespaceCreator.generateClassPackage(element), clazz)
                .build()
                .writeTo(filer);
    }
}
  • NamespaceCreator.generateClassPackage(element) возвращает имя пакета для class, т.е. generated.schema.

1 Ответ

0 голосов
/ 01 июля 2019

Во время генерации классов я ждал последнего прохода обработки.генерация кода, инкапсулированная в

if (roundEnvironment.processingOver())

Я получаю предупреждение из-за этого:

Файл для типа «generate.schema.GeneratedFile», созданный в последнем раундене будет подвергаться обработке аннотаций.

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

Несмотря на то, что после удаления последней проверки раунда / прохода из генерации файла я могу правильно (с импортом) получить доступ к сгенерированным файлам без каких-либо ошибок;Я до сих пор не понимаю, как генерация файлов во всех раундах влияет на доступ к файлам во время сборки с import.

. Для этого я буду публиковать новый вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...