Android版本检查

时间:2014-12-23 16:08:10

标签: android android-version

我不是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 字段不存在...所以为什么这在文档中推荐的解决方案中?

我真的想知道我错过了什么?

4 个答案:

答案 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