Как я могу убедиться, что в Android не вызывается неподдерживаемый (более высокий уровень) API?

Я создаю приложение для 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 свою программу с NoSuchMethodError исключения NoSuchMethodError .

Поэтому, прежде чем я опубликую свое приложение, я всегда устанавливаю свой проект на использование Android SDK 2.3.3 и удостоверяюсь, что я не совершаю незаконные вызовы методов (например, все ошибки, которые я получаю, завернуты в оператор if проверяющий версию Android SDK) Затем установите SDK обратно в 4.2.2.

Есть ли лучший способ убедиться, что неподдерживаемый API не вызывается без переключения SDK?

(PS Я использую IntelliJ)

Вы можете (должны) запустить Android Lint, чтобы проверить, что:

Щелкните правой кнопкой мыши проект (или пакет, класс)> «Анализ»> «Проверить код».

Введите описание изображения здесь

В свойствах Eclipse -> Настройки Android Lint -> NewApi и измените степень серьезности на ошибку.