Android Studio中呼叫高於minSdkVersion版本API, 無提示 (Lint問題),開啟api版本檢測
阿新 • • 發佈:2018-12-30
一. 坑: 呼叫高於minSdkVersion版本的API時, AS無提示 !
最近重構專案時用到了HandlerThread類, 程式碼中呼叫了此類的quitSafely()方法, 結果導致了下面的錯誤:
呼叫高版本api導致的crash.png
經過一番折騰, 發現quitSafely()方法是API Level 18
新增的, 再看看crash的系統版本, 基本上都是4.3 (4.3對應api level 18)以下的. 毫無疑問這是個版本相容性問題. 問題找到了, 修復就容易了, 無非是相容一下低版本 (低於api level 18
的系統, 呼叫quit( )
***關鍵問題是: 呼叫高版本的api為啥編譯器沒有提示 ?! ***
☞ 一般呼叫大於minSdkVersion版本新增的API時, 編譯器是會有提示的 (方法下面會劃紅線) !! 如下:
呼叫高於minSdkVersion版本的api是IDE (AS) 的提示.png
二. 解決
又經過一番折騰, 發現遮蔽了lint提示. 專案根目錄下有個lint.xml檔案, 內容如下:
<?xml version="1.0" encoding="UTF-8"?> <lint> <issue id="NewApi" severity="ignore" /> </lint>
沒錯, 就是它乾的好事 !! 刪掉它, 重新build一下專案, 就有提示啦 !!
如果你不想讓lint檢測太多警告性語法錯誤可以針對性的遮蔽 ,你可以在你的專案根目錄下, 新增一個lint.xml, 但是僅僅只是遮蔽警告檢測 ,錯誤檢測一定不要遮蔽,不然很難發現問題。
如下是我的專案lint檔案,遮蔽了很多語法檢測,可以參考一下: