【发布时间】:2015-02-21 19:21:57
【问题描述】:
我对 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 字段不存在......那么为什么在文档中推荐的解决方案中会出现这种情况?
我真的很想知道我错过了什么?
【问题讨论】:
-
该变量可用,因为您正在使用构建工具级别进行构建,无论设备级别如何,该级别都具有它。无论如何,这些都在编译时解析为整数
-
我认为您正在寻找的答案是stackoverflow.com/a/26941714/2778376
-
所以这不会崩溃,根据其他帖子,您的静态变量将在编译代码时替换为正确的整数。