findbugs过滤R.java文件

    在第一次使用findbugs时检查出100多个Bad pratice,仔细一看原来全是R文件里面的类名首字母没有大写导致的。

    于是只有自己在findbugs设置界面中添加过滤条件来忽略掉R文件。

    

    在File-Settings-Other Settings-FindBugs IDEA的Filter中,在Exclude的那个框中点加号添加过滤文件,

    注意文件类型不是java,也不是文件夹,而是xml文件,文件内容为过滤规则。

    自己先写了个过滤R文件的xml文件,然而并没有想象中那么简单。。

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
           <Class name="com.work.checkpermission.R" />
    </Match>
</FindBugsFilter>

    如果是过滤一些正常的类,如上语法是正确的,可能R文件比较特殊,这样写是无效的。

    正确的过滤R文件的xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
    <Match>
        <Or>
            <Class name="~.*\.R\$.*"/>
            <Class name="~.*\.Manifest\$.*"/>
        </Or>
    </Match>
</FindBugsFilter>

    该xml无论什么名字,无论放在哪,只要添加进Exclude框中点击ok即可。

    同理,若想要筛选在哪些类中使用findbugs,可以指定相应规则然后添加到Include框中即可。

    关于findbugs的filter文件内容的具体语法可参考网址:http://findbugs.sourceforge.net/manual/filter.html

    这些规则可以是筛选/过滤类、方法、包、文件夹等等,全部可以自定义。

     

    然后在使用findbugs过程中工程还报出了一个编译错误:

    Error:Gradle: failed to create directory '...'
    ...

    > Failed to execute aapt

    在查阅资料中发现这好像是Android Studio 3.0才有的错误,

    解决方法是在gradle.properties文件的最后添加一行:android.enableAapt2=false

    也可以尝试使用工具栏Build-Clean Project清理项目,File-invalidate caches/restart清理缓存。

 

posted @ 2018-05-08 20:32  LangZXG  Views(1802)  Comments(0Edit  收藏  举报