Запуск следующего (note: target > 3.0)
ActionBar actionBar = getActionBar();
на Android с версией < 3.0 (SDK 11) приводит к 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
, что, по-видимому, является причиной этого.
Является ли это допустимым способом решения проблемы совместимости?