错误:程序包generate.schema不存在

时间:2019-06-21 06:36:43

标签: java android javapoet annotation-processor

在我的Android应用程序中,我有一个注释处理器,该处理器使用 Query qp = Firestore.instance .collection('post') //.orderBy('like', descending: true) .orderBy('time', descending: true) .where('city', isEqualTo: 'مكة') //.where('like', isGreaterThan: 12) .where('time', isGreaterThan: DateTime.now().subtract(Duration(days: 4))) .limit(30); QuerySnapshot shot = await qp.getDocuments(); var _ocument = shot.documents.last; Query q = Firestore.instance .collection('post') .orderBy('like', descending: true) //.orderBy('time', descending: true) .where('city', isEqualTo: 'مكة') //.reference() //.startAfter([_ocument.data.length]) //.endAt([_ocument.data.length]) //.startAt([_ocument.data.length]) //.startAfterDocument(_ocument) .startAt(['time', _ocument.data['time']]) //.where('like', isGreaterThan: 12) //.where('time', isGreaterThan: DateTime.now().subtract(Duration(days: 4))) .limit(30); 生成文件并将其放置在generate.schema包下。

文件生成正确。每当我像这样使用生成的文件

JavaPoet

我收到以下错误:

GeneratedFile.someGeneratedMethod();

但是如果我包含完全限定的类名而不是像这样导入

error: package generated.schema does not exist.

代码可以编译并运行,没有任何错误。

我不想每次使用generated.schema.GeneratedFile.someGeneratedMethod(); 时都添加完整的软件包。我不确定自己做错了什么,因为我仍在学习使用注释处理器

由其他库(包括Realm,DataBinding)生成的文件都按预期正常工作。

文件生成:

我使用JavaPoet运行以下代码。

GeneratedFile
  • if (roundEnvironment.processingOver()) { for (TypeElement element : apiList) { TypeSpec clazz = generateFile(element); JavaFile.builder(NamespaceCreator.generateClassPackage(element), clazz) .build() .writeTo(filer); } } 返回NamespaceCreator.generateClassPackage(element)的软件包名称,即class

1 个答案:

答案 0 :(得分:0)

在生成类时,我正在等待最后的处理过程。

封装的代码生成
if (roundEnvironment.processingOver())

正因为如此,我收到了警告:

  

在上一轮创建的类型为“ generated.schema.GeneratedFile”的文件将不受注释处理。

在发布问题之前,我已经意识到了这一警告,但是,为了简化一次性生成所有文件的操作,我愿意忽略对生成文件的进一步注释处理。

尽管如此,从文件生成中删除最后一个回合/通过检查之后,我仍然可以正确(带有导入)访问生成的文件而没有任何错误;我仍然不了解在使用import进行构建期间,全面生成文件如何影响访问文件。

为此,我将发布一个新的question