私は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フィールドが存在しないため、この行はアプリをクラッシュさせます...ドキュメント内のソリューション?
私は本当に何が欠けているのだろうと思っていますか?
さて、プロジェクトを最新のSDKバージョンでコンパイルする必要があります。定数は、コンパイル時に対応する整数値に置き換えられます。アプリケーションを実行するAndroidのバージョンに関係なく、整数は同じです
その場合はこれを使用してください
// 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
これを試してみてください
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
回答が少し遅れましたが、今日、Android Studio 3.4.1で同じ問題に遭遇しました
回避策は次のとおりです。
最新のAndroid SDKにアップグレードします。
そして、
Marshmallow/Android 6 Build.VERSION_CODES.xxxの後、フルネームはイニシャルと他のバリエーションに置き換えられます。
したがって、現在はマシュマロの場合、Build.VERSION_CODES.Mになります。
ヌガーの場合:Build.VERSION_CODES.N
等々。