运行以下(注意:目标> 3.0)
ActionBar actionBar = getActionBar();
在版本 < 3.0 (SDK 11) 的 Android 上会生成NoSuchMethodError
.
有几种方法可以解决这个问题,包括反射和类延迟加载。但是,以下似乎适用于我测试过的所有设备(2.3.6、3.0、3.1、4.0):
boolean hasActionBar = android.os.Build.VERSION.SDK_INT >= 11;
if (hasActionBar) {
ActionBar actionBar = getActionBar();
} else {
// create custom actionbar
}
请注意SDK_INT
参数是static final
,这似乎是它起作用的原因。
这是处理兼容性的有效方法吗?