Gradle dagger lint:忽略包裹

mid*_*ght 17 android gradle dagger

我使用Gradle创建了一个Android项目.我添加了一个匕首库

dependencies {
    compile 'com.squareup.dagger:dagger-compiler:1.2.1'
    compile 'com.squareup.dagger:dagger:1.2.1'
}
Run Code Online (Sandbox Code Playgroud)

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

InvalidPackage: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忽略匕首包.我已经设置了lint.xml,但我无法想出一种忽略的方法:

InvalidPackage: Package not included in Android
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mih*_*nca 36

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

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

android {
...

   lintOptions {
       disable 'InvalidPackage'
   }
}
Run Code Online (Sandbox Code Playgroud)

在lint.xml中添加相同的ignore语句对我没有用.

  • 你可以这样做:`lintOptions {warning'InvalidPackage'}`它会在没有禁用lint的情况下将InvalidPackage作为警告而不是错误传递 (5认同)
  • 这将为您的整个构建禁用无效包 - 仅针对特定依赖项忽略它会非常好,以确保您在导入新库时收到警告! (3认同)
  • 为什么皮棉首先要这样做?人们需要在其应用程序中包含专有的jar文件。谁能向我解释为什么皮棉将其标记为问题? (2认同)

Tor*_*bye 5

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

  • 这对Dagger来说很好,但对于那些不太常见的库有这个问题的人来说无济于事. (5认同)