簡體   English   中英

錯誤:程序包generate.schema不存在

[英]error: package generated.schema does not exist

在我的Android應用程序中,我有一個注釋處理器,該處理器使用JavaPoet生成文件並將其放置在generate.schema包下。

文件生成正確。 每當我像這樣使用生成的文件時

GeneratedFile.someGeneratedMethod();

我收到以下錯誤:

error: package generated.schema does not exist.

但是如果我包含完全限定的類名而不是像這樣導入

generated.schema.GeneratedFile.someGeneratedMethod();

代碼可以編譯並運行,沒有任何錯誤。

我不想每次使用GeneratedFile時都添加完整的軟件包。 我不確定自己做錯了什么,因為我仍在學習使用Annotation Processor

由其他庫(包括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())

因此,我收到警告:

在上一輪創建的類型為“ generated.schema.GeneratedFile”的文件將不進行注釋處理。

在發布問題之前,我已經意識到了這一警告,但是為了簡化一次性生成所有文件的過程,我願意忽略對生成文件的進一步注釋處理。

即使從文件生成中刪除了最后一個回合/通過檢查之后,我也可以正確(帶有導入)訪問生成的文件而沒有任何錯誤; 我仍然不明白在使用import構建過程中,全面生成文件如何影響訪問文件。

為此,我將發布一個新問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM