Android Studio - FindBugs excludeFilter文件适用于IDEA插件,但不适用于Gradle插件

use*_*751 6 findbugs gradle android-studio android-gradle-plugin

我有以下排除过滤器来忽略所有R文件类:

FindBugs的 - 排除,filter.xml

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
        <Class name="~.*\.R\$.*"/>
    </Match>
</FindBugsFilter>
Run Code Online (Sandbox Code Playgroud)

当我将它用于FindBugs-IDEA插件时,它可以工作.

但是,当我将它用于FindBugs Gradle插件时,在这样的任务中:

的build.gradle

apply plugin: 'findbugs'
task myFindBugsTask(type: FindBugs)  {

    .....

    excludeFilter = file("$project.rootDir/findbugs-exclude-filter.xml")

    .....
}
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:Cannot read file specified for FindBugs 'excludeFilter' property:.报告仍然成功生成,但过滤器没有采取.

我已经尝试了我在互联网上找到的每个解决方案(大部分都非常过时),我得到了相同的结果.

什么给出了什么?这是一个已知的错误?我是唯一一个经历过这种情况的人吗?

use*_*751 2

因此,如果有人遇到同样的问题,我找到了解决方法。这个概念是提交一个过滤的文件树。我的任务现在看起来像这样:

apply plugin: 'findbugs'
task myFindBugsTask(type: FindBugs)  {

    .....

    FileTree tree = fileTree("$project.buildDir/intermediates/classes").exclude('**/*R$*.class')
    classes = tree

    .....

}
Run Code Online (Sandbox Code Playgroud)