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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM