Подтвердить что ты не робот

ActionBarSherlock дает тонны "Call требует, чтобы уровень API уровня 11 (текущий мин равен 7)"

Я загрузил ActionBarSherlock 4.0.3, распаковал его и создал новый проект из папки library. Папка src была, по мнению Eclipse, полна ошибок, поэтому я следил за различными инструкциями в Интернете, например добавив android-support-v4.jar, установив целевой API на 15 и уровень соответствия компилятора 1.6. Тем не менее, проект имеет 194 ошибки, все из которых "Call требует уровня API 11 (текущий минимум 7)". Поэтому, когда я смотрю на одну из ошибок, я вижу следующее:

@Override
public void invalidateOptionsMenu() {
    getSherlock().dispatchInvalidateOptionsMenu();
}

public void supportInvalidateOptionsMenu() {
    invalidateOptionsMenu();
    //the previous line has this error in Eclipse:
    //Call requires API level 11 (current min is 7): android.app.Activity#invalidateOptionsMenu
}

Мне это кажется странным, потому что invalidateOptionsMenu() переопределяется предыдущей функцией, но Eclipse все еще жалуется на функцию, требующую нового уровня API. Когда я смотрю на другие ошибки, я нахожу, что это имеет место и со многими другими ошибками.

У меня гораздо больше опыта работы с Python, чем с Java, поэтому я ничего не понимаю о том, почему это происходит. Помощь будет оценена, и если вы поможете, не могли бы вы также объяснить, что вызывает это и что вы сделали, чтобы решить эту проблему? Я бы не хотел спрашивать кого-то каждый раз, когда у меня есть проблема, я тоже хочу учиться.

4b9b3361

Ответ 1

Поскольку вы используете минимальный API-уровень 7, а invalidateOptionsMenu() не существовало до уровня API 11, вы не можете его переопределить без ошибок, поскольку, если устройство запускает уровень API 7, функция не доступна даже в базовом классе, а не существующая функция не может быть переопределена.

Ответ 2

Случилось мне после запуска чеков Lint. Попробуйте щелкнуть правой кнопкой мыши на проекте панели инструментов sherlock → Инструменты Android → Очистить маркеры Lint.

Ответ 3

Используйте ActivityCompat, предоставленный в банке поддержки.

Ответ 4

Все ответы неверны, кроме dbrown0708 Ответ, но я объявлю это более

Вы можете использовать invalidateOptionMenu в нижнем API, используя ActivityCompat Как это предусмотрено в библиотеке поддержки v4

Синтаксис invalidateOptionsMenu(Activity activity);

code

ActivityCompat.invalidateOptionsMenu(this);

В API Начиная с уровня 11

invalidateOptionsMenu();

Ответ 5

Попробуйте использовать import android.support.v4.app.Fragment; как свою библиотеку