Я следил за официальной программой обучения Android и на уроке «Управление жизненным циклом деятельности». Начав работу, есть фрагмент кода, который выглядит примерно так:Для вызова требуется уровень API 14 (текущий минимум равен 11)
public void onCreate(Bundle savedInstanceState) {
/* ... some other stuff ... */
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// For the main activity, make sure the app icon in the action bar
// does not behave as a button
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(false);
}
}
Когда я пишу это в моем тестовом приложении, однако, я получаю предупреждение от ADT говоря
вызов требует уровень API 14 (ток мин составляет 11): android.app.ActionBar # setHomeButtonEnabled
Мое приложение действительно является уровнем API уровня 11, как и должно быть в учебнике, но почему ADT действует так самодовольно, что мне это не принадлежит, когда вызов этого метода находится внутри блока, который проверяет текущий версия? Программа обучения продолжает убеждать меня, что это нормально, говоря:
Внимание: Использование SDK_INT для предотвращения старых систем от выполнения новых API, работает таким образом на Android 2.0 только (уровень API 5) и выше. В старых версиях будет встречаться исключение во время выполнения.
Но избежать выполнения ошибка не помогает, когда ADT не даже позвольте мне скомпилировать это.
Как я уже сказал Abhishek Shukla ниже, я добавил пакет поддержки на одном из предыдущих уроков. Если он должен работать с пакетом поддержки, не подавляя ошибок от Lint, тогда должно быть что-то еще неправильно ... Ваш совет по подавлению ошибок Lint действительно работает, поэтому я могу по крайней мере продолжить свои уроки сейчас :) – 3Nex
@ 3Nex приветствуется :) – Sajmon
Обратите внимание, что если это абсолютно ясно, но для того, чтобы использовать панель действий поддержки, вам нужно использовать getSupportActionBar(), а не getActionBar(). Использование последнего приведет к ошибке и вызовет ошибку в API ниже 14. –