compiler 時,常因版本問題無法通過
可以透過以下方法解決
| 使用 RequiresApi |
|---|
|
格式: @RequiresApi(api = [SDK版本編號]) |
|
sample: @RequiresApi(api = 26) private void test() { .... } |
|
裝置在執行這個函式時會檢查 如果 API 版本不夠高,整個函式都不會被執行 |
|
雖然比較簡單(Android Studio 可以自動產生) 但,遇到舊版API,雖不致當掉,但整段函式都不執行 |
|
官方說明: RequiresApi@Android Developers |
| (程式內)執行前檢查 SDK 版本 |
|---|
| if (android.os.Build.VERSION.SDK_INT >=[ver]) { 執行程式 } |
| sample: if (Build.VERSION.SDK_INT >= 26) { myVibrator.vibrate (VibrationEffect.createWaveform(pattern, repeat)); } else { myVibrator.vibrate(pattern, repeat); } |
|
執行到底該處 如果 API 版本不夠高時,不執行該段程式 (不會因執行該段而當掉) |
| 稍好一點 遇到 API 版本不夠高時,仍會執行函式 但會跳過新版功能,以免掛掉 |
Android 的 SDK 很多
還是希望程式盡可能多種裝置都正常執行
| 程式內依版本決定執行方式 |
|---|
| if (android.os.Build.VERSION.SDK_INT >=[ver]) { 使用新版方法 } else { 使用舊版方法 } |
|
有時候會遇到較複雜狀況: if (android.os.Build.VERSION.SDK_INT >=28) { SDK> 28 可用的API } else if (android.os.Build.VERSION.SDK_INT >=26) { SDK> 26 可用的API } else { SDK<26 可用的API } |