Android Studio 显示 JavaPoet 库的非常具体的不正确错误

Android studio shows very specific incorrect errors with JavaPoet library

我使用 JavaPoet 库编写了注释处理器,并将其作为 Java 库模块包含在我的项目中。它编译并工作正常。问题是 - Android Studio 内联编译器向我显示了不应该出现的错误。

  1. 出于某种原因,它无法识别参数中的省略号

  2. 同上

  3. 它表明没有将 Filer 类型作为参数的 writeTo 方法,即使当您选择 Go To > Declaration 选项时显然有一个方法。正如我提到的 - 它编译得很好。

我已经试过了:

  1. 清理和重建项目 - 没用
  2. 同步 gradle 几次 - 没用
  3. 正在刷新 gradle 项目 - 没用
  4. 使用文件 > 使 Cache/Restart 选项无效 - 没用
  5. 删除 .gradle 和 .idea 文件夹并再次同步 - 没用
  6. 从项目和磁盘中删除我的 Java 库模块并使用相同的 类 重新创建它 - 也没有用

总是一样的三个错误,所以我很茫然。我必须提到 这个问题发生在我将 JavaPoet 版本从 1.12.1 降级到 1.9.0(Java 7 兼容性对我的应用版本,那么高 Java 8 个版本是不可能的)。

我的 gradle 文件:

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    annotationProcessor 'com.google.auto.service:auto-service:1.0-rc2'
    implementation 'com.google.auto.service:auto-service:1.0-rc2'
    implementation 'android.arch.persistence.room:runtime:1.1.1'
    implementation 'com.squareup:javapoet:1.9.0'
}

sourceCompatibility = 1.7
targetCompatibility = 1.7


这不是一个交易破坏者,但它会让人分心和烦人。您是否知道造成这种行为的原因是什么?

虽然我仍然不明白可能是什么原因,但一旦我将处理器模块作为项目包含在我的主应用程序模块中,而不是作为一个项目,错误就消失了罐子。
基本上,我更改了这一行:

annotationProcessor files('../migrationprocessor/build/libs/migrationprocessor.jar')

到这一行:

annotationProcessor project(':migrationprocessor')