Android版本检查
我对Android并不陌生,我很习惯于版本处理和如何调整它,但当我看到它时,我会感到困扰Android版本检查,android,android-version,Android,Android Version,我对Android并不陌生,我很习惯于版本处理和如何调整它,但当我看到它时,我会感到困扰 // 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
// 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\u code.lollipop字段不存在。。。那么,为什么在文档中推荐的解决方案中会出现这种情况呢
我真的很想知道我遗漏了什么?好吧,你必须用最新的SDK版本编译你的项目。编译期间,常量将替换为相应的整数值。无论在哪个版本的Android上运行应用程序,整数都是相同的
// 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\u CODES.LOLLIPOP=21
试试这个
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
// Marshmallow+
}else{
//below Marshmallow
}
注意:Build.VERSION\u code.LOLLIPOP\u MR1==22
Build.VERSION_CODES.M==23
回答有点晚,但是今天我在Android Studio 3.4.1上遇到了同样的问题 因此,解决办法是: 升级至最新的Android SDK 以及 在Marshmallow/Android 6 Build.VERSION_CODES.xxx之后,全名将替换为首字母和其他一些变体 所以,现在对于棉花糖,它将是: Build.VERSION_code.M 牛轧糖: Build.VERSION\u code.N 等等
您应该尝试以下操作:该变量可用,因为您使用的构建工具级别确实具有该变量,而不管设备级别如何。不管怎样,这些都在编译时解析为整数:我认为您要寻找的答案是这样,这样就不会崩溃,根据其他帖子,在编译代码时,您的静态变量将被替换为正确的整数。@Alexander Zhak answer is coreect。。。除非编译到较低的版本并希望处理较高的版本,否则数值没有意义。是否与相同
@RequiresApi(Build.VERSION\u CODES.LOLLIPOP)
@AsifMushtaq:参见此