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清理缓存。