错误:包生成架构不存在



在我的Android应用程序中,我有一个注释处理器,它使用JavaPoet生成文件并将它们放在package生成的.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

在生成类时,我正在等待最后一个处理过程。 封装的代码生成

if (roundEnvironment.processingOver())

因此,我收到了警告:

在上一轮中创建的类型"created.schema.GeneratedFile"的文件将不受注释处理。

在发布问题之前,我就知道了这个警告,但是为了简化一次性生成所有文件的简单性,我愿意忽略对生成的文件的进一步注释处理。

即使,在从文件生成中删除最后一轮/通过检查后,我可以正确(通过导入(访问生成的文件而不会出现任何错误;我仍然不明白在所有回合中生成文件如何影响在使用 import 构建期间访问文件。

为此,我将发布一个新问题。

最新更新