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