1. 程式人生 > >Android Studio中呼叫高於minSdkVersion版本API, 無提示 (Lint問題),開啟api版本檢測

Android Studio中呼叫高於minSdkVersion版本API, 無提示 (Lint問題),開啟api版本檢測

一. 坑: 呼叫高於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檔案,遮蔽了很多語法檢測,可以參考一下:

lint.xml

參考:https://www.jianshu.com/p/dc44b8e5bd14