2012-03-14 7 views
4

Я разрабатываю приложение для Android, но я не могу использовать аннотации Override. Он продолжает говорить, что метод должен переопределять метод суперкласса, который делает. Я использую Java 1.7 и Android API 8 (2.2). Использование Eclipse.Почему я не могу использовать аннотации Override на Android?

Любые идеи?

EDIT:

Пример

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return this.data.size(); 
} 

Но компилятор не позволит мне использовать @Override, заявляя, что его не суперкласса метод. Я использую BaseAdapter.

+0

Я вам обещаю, что если вы пытаетесь постройте [SSCCE] (http://sscce.org), вы узнаете, что такое ошибка. – aioobe

ответ

7

Вы должны использовать Java 1.6 при построении андроид проектов. Java 1.7 несовместим с текущим набором инструментов Android. Измените свои проекты для использования 1.6 и эта проблема должна уйти

В затмении: правой кнопкой мыши проект -> Свойства -> Java Compiler -> переключить все ссылки на 1.7 до 1.6

+0

На самом деле это сделал трюк. Проблема в том, что она решает одну проблему, но добавляет другую. Теперь он говорит, что некоторые ссылки не могут быть найдены. Я предполагаю, что это ошибка Eclipse, поскольку я импортировал проект. Я собираюсь повторно импортировать проект и очистить его, чтобы посмотреть, могу ли я согласиться с 1.6. –

2

Вы можете использовать @Override аннотация. Если вы получите эту ошибку, это означает, что у вас есть ошибка в прототипе метода, или вы не расширяете то, что хотите расширить.

Например, на уровне API 8, следующий даст вам ошибку, поскольку метод введен в API 11:

@Override 
public void startActivities (Intent[] intents){ 

} 
Смежные вопросы