Я использую Eclipse Indigo (Java) для Android-проекта, который до недавнего времени был нацелен на уровень API 8 (Android 2.2) и теперь нацелен на уровень API 10 (Android 2.3.3).
Причина, по которой мне нужно было переключиться, заключалась в том, что я хотел использовать метод getMotionRange (int) класса MotionEvent, который принимает один аргумент - желаемую ось для получения диапазона. Проблема в том, что когда я укажу:
getMotionRange (MotionEvent.AXIS_X)
... Eclipse сообщает мне, что AXIS_X не может быть разрешен в поле MotionEvent, несмотря на то, что образцы в SDK показывают, что это так, как с уровня API 10. Когда я открываю класс в Eclipse, чтобы его проверить, кажется, что информация о классе была сгенерирована из источника Android 1.5, что может объяснить проблему... но я не знаю, как решить проблему в Eclipse.
Я чувствую, что я, должно быть, пропустил шаг, когда я столкнулся с базовым уровнем моего проекта до уровня API 10, от уровня API 8, который вызвал бы эти исходные ссылки для регенерации или что-то еще? Когда я открываю класс MotionEvent, под предполагаемым источником Android 2.3.3, он показывает мне информацию 1.5...
EDIT: Возможно, проблема связана с классом View, который я расширяю? (GLSurfaceView)
. Мне кажется, что метаданные Eclipse Workspace или Android Development Tools (ADT) для метаданных Eclipse испорчены. Возможно, попробуйте очистить, закрыть/возобновить свой проект. Попробуйте с новой пустой рабочей областью и импортируйте проект оттуда.
Кроме того, вы попытались найти путь к проекту для вашего проекта? Может быть, там что-то не так.
Если ничто из этого не помогает, возможно, следует принять более решительные меры. Как и повторная установка ADT или даже запуск с нового Eclipse.