我不是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
}
在棒棒糖的任何设备上,这一行会使应用程序崩溃,因为 Build.VERSION_CODES.LOLLIPOP 字段不存在...所以为什么这在文档中推荐的解决方案中?
我真的想知道我错过了什么?
答案 0 :(得分:51)
那么在这种情况下使用这个
// 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
答案 1 :(得分:27)
好吧,您必须使用最新的SDK版本编译项目。在编译期间,常量将替换为相应的整数值。无论你在哪个版本的Android上运行应用程序 - 整数都是相同的
答案 2 :(得分:15)
试试这个
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
答案 3 :(得分:0)
回答得有点晚,但是今天,我在Android Studio 3.4.1上遇到了同样的问题
因此解决方法是:
升级到最新的Android SDK。
然后
在棉花糖/ Android 6 Build.VERSION_CODES.xxx之后,全名将替换为首字母缩写和一些其他变体。
因此,对于棉花糖来说,它将是: Build.VERSION_CODES.M
对于牛轧糖: Build.VERSION_CODES.N
以此类推。
Read more about the build version codes here: Android Developer Reference