因為業務需要,今天做了 Android 向下相容的改動
由 API 26 -> API 24
從支援 Android 8.0 向下擴充到 Android 7.0
接下來,當我們向下改動之後
會有一些 code 必需做版本的處理吧?
所以會報出如下 Error
Call requires API level 26 (current min is 24)
我們試著用 Android Studio build app 出來試
結果竟然是 success 的
但明明有 紅色波浪 的錯誤提示
執到到相關的 code 也會閃退呀
其實 Android Studio 沒有特別設定的話,檢查是比較寬鬆的
那我們怎麼檢查 code 裡面全部的 error 呢?
這時候可以用 lint command line
打開終端 terminal 輸入其中一項指令
./gradlew lint
./gradlew lint --warning-mode all
這樣一來 Gradle 就會去檢查所有的問題
其實用 ./gradlew lint 就可以檢查了
那為什麼我們還要加後面的參數呢?
若遇到下列錯誤
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
代表有些訊息沒 show 出來
需要加上 --warning-mode all
才能 show 出完整訊息
最後,若有問題的話
則會如下顯示出來給我們知道
ContextExt.kt:51: Error: Call requires API level 26 (current min is 24): android.os.VibrationEffect#createOneShot [NewApi]
vibrator.vibrate(VibrationEffect.createOneShot(milliseconds, amplitude))