web-dev-qa-db-ja.com

Androidバージョンチェック

私はAndroidに慣れていないので、バージョンの処理とその調整方法に慣れていますが、 this が表示されると問題が発生します...

// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
    // Call some material design APIs here
} else {
    // Implement this feature without material design
}

Lollipopより前のデバイスでは、Build.VERSION_CODES.Lollipopフィールドが存在しないため、この行はアプリをクラッシュさせます...ドキュメント内のソリューション?

私は本当に何が欠けているのだろうと思っていますか?

50
TacB0sS

さて、プロジェクトを最新のSDKバージョンでコンパイルする必要があります。定数は、コンパイル時に対応する整数値に置き換えられます。アプリケーションを実行するAndroidのバージョンに関係なく、整数は同じです

28
Alexander Zhak

その場合はこれを使用してください

// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= 21) {
    // Call some material design APIs here
} else {
    // Implement this feature without material design
}

Build.VERSION_CODES.Lollipop = 21

54
Rohit5k2

これを試してみてください

 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Lollipop_MR1) {
       // Marshmallow+
   }else{
        //below Marshmallow
}

注:Build.VERSION_CODES.Lollipop_MR1 == 22

    Build.VERSION_CODES.M==23
15
Gautam

回答が少し遅れましたが、今日、Android St​​udio 3.4.1で同じ問題に遭遇しました

回避策は次のとおりです。

最新のAndroid SDKにアップグレードします。

そして、

Marshmallow/Android 6 Build.VERSION_CODES.xxxの後、フルネームはイニシャルと他のバリエーションに置き換えられます。

したがって、現在はマシュマロの場合、Build.VERSION_CODES.Mになります。

ヌガーの場合:Build.VERSION_CODES.N

等々。

ビルドバージョンコードの詳細については、こちらをご覧ください:Android Developer Reference

0
bitcolon