我正在为 Gingerbread 和更高版本构建一个应用程序,minSdkVersion=10
并targetSdkVersion=17
在我的 AndroidManifest.xml 中。
我知道我应该在调用 API 之前检查它是否受支持,例如:
private void removeRule(RelativeLayout.LayoutParams params, int rule) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // API 17
params.removeRule(rule);
} else {
params.addRule(rule, 0);
}
}
但有时我忘记/或不知道我正在调用更高级别的 API,并且偶尔会因NoSuchMethodError
异常而使我的程序崩溃。
所以在我发布我的应用程序之前,我总是将我的项目设置为使用 Android SDK 2.3.3 并确保我没有进行非法方法调用(例如,我得到的所有错误都包含在if
检查 android SDK 版本的语句中),然后将 SDK 设置回 4.2.2。
有没有更好的方法来确保在不切换 SDK 的情况下不调用不受支持的 API?
(PS 我正在使用 IntelliJ)