17

我使用 Gradle 创建了一个 Android 项目。我添加了一个 Dagger 库:

dependencies {
    compile 'com.squareup.dagger:dagger-compiler:1.2.1'
    compile 'com.squareup.dagger:dagger:1.2.1'
}

尝试编译项目后,由于 lint 异常导致构建失败:

InvalidPackage: Package not included in Android

../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar:库中的包引用无效;不包含在 Android 中:javax.annotation.processing。引用自 dagger.internal.codegen.GraphAnalysisErrorHandler。

../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar:库中的包引用无效;不包含在 Android 中:javax.lang.model.type。引用自 dagger.internal.codegen.GeneratorKeys。

../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar:库中的包引用无效;不包含在 Android 中:javax.lang.model.util。引用自 dagger.internal.codegen.GraphAnalysisErrorHandler。

../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.3.0/4b290e394ea3109be5c0b7f08ff75de089125122/javawriter-2.3.0.jar : 库中的包引用无效;不包含在 Android 中:javax.lang.model.element。引用自 com.squareup.javawriter.JavaWriter。

因此,我必须修复或使 lint 忽略 Dagger 包。我已经设置lint.xml,但我想不出一种忽略的方法:

 <issue id="InvalidPackage">
  <ignore ...INSERT DECLARATION TO IGNORE DAGGER PACKAGE... />
 </issue>

谢谢。

4

3 回答 3

36

在这里找到答案: https ://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7

在 android 部分添加 build.gradle,lintOptions 为我解决了这个问题:

android {
...

   lintOptions {
       disable 'InvalidPackage'
   }
}

在 lint.xml 中添加相同的忽略语句对我不起作用。

于 2014-02-24T10:41:06.433 回答
5

仅供参考,从 Android Gradle 插件的 0.10.1 版开始,这将不再是必需的;lint 将自动忽略 Dagger 中发现的这些问题: https ://android-review.googlesource.com/#/c/93140/

于 2014-05-01T23:35:46.927 回答
0

您可以添加一个lint.xml匹配包中任何文件的正则表达式:

<lint>
  <issue id="InvalidPackage">
    <ignore regexp=".*\.gradle.*" />
  </issue>
</lint>
于 2021-06-22T13:08:03.117 回答