В моем приложении для 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
.