将FindBugs更新为3.0.1后编译Android项目时出错

时间:2015-10-21 14:47:19

标签: android plugins gradle android-gradle findbugs

将Findbugs插件更新到3.0.1版后,我无法在Android Studio中编译多模块项目。我还使用"com.google.code.findbugs:annotations:3.0.1"依赖项来使用FindBugs注释(例如@SuppressFBWarnings)。

组装项目时出现以下错误:

Execution failed for task ':presentation:packageAllDevelopDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: javax/annotation/CheckForNull.class

我该如何解决?

2 个答案:

答案 0 :(得分:6)

我解决了这个问题,原因是添加了"com.google.code.findbugs:annotations:3.0.1"个附加依赖项('com.google.code.findbugs:jsr305:3.0.1''net.jcip:jcip-annotations:1.0')。要修复它,我们需要排除一些传递依赖。

替换:

dependencies {
    compile "com.google.code.findbugs:annotations:3.0.1"
}

dependencies {
    compile ("com.google.code.findbugs:annotations:3.0.1") {
      exclude module: 'jsr305'
      exclude module: 'jcip-annotations'
    }
}

dependencies {
    compile ("com.google.code.findbugs:annotations:3.0.1") {
        transitive = false
    }
}

答案 1 :(得分:0)

如前所述,排除模块jsr305对我有用,但由于导入项目而不是模块,我使用了不同的语法。

我在我的磁盘上导入了作为独立项目存在的库项目,所以我有

compile project(path: ':shareLib')

要排除模块jsr305我在

中转换了代码
compile (project(path: ':shareLib')) {
    exclude module: 'jsr305'
}