如何确保Android中未调用不受支持的(更高级别)API?

Ray*_*hou 8 android lint intellij-idea

我建立一个应用程序的姜饼了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);
    }
}
Run Code Online (Sandbox Code Playgroud)

但有时我会忘记/或者不知道我正在调用更高级别的API,偶尔也会崩溃我的程序NoSuchMethodError.

所以在我发布我的应用程序之前,我总是将我的项目设置为使用Android SDK 2.3.3,并确保我没有进行非法的方法调用(例如,我得到的所有错误都包含在if检查android SDK版本的语句中),然后将SDK设置回4.2.2.

有没有更好的方法来确保在不切换SDK的情况下不会调用不支持的API?

(PS我正在使用IntelliJ)

Ahm*_*mad 7

您可以(应该)运行Android Lint来检查:

右键单击项目(或包,类)>分析>检查代码.

在此输入图像描述