Метод API 9 компилируется в метод API 3 Android Project, ошибка выполнения

1

Недавно я завершил свою первую игру в Android. Созданные в Eclipse, свойства android имеют целевую платформу только для Android 1.5 (API уровня 3).

В моем коде я позвонил:

LinkedList<String> x = new LinkedList<String>();
// ...
x.pop(); // error

Я могу скомпилировать свой код и запустить его на настольной версии моего проекта. Проект андроида также компилируется; но когда я разворачиваю его на свой телефон, DDMS показывает мне ошибку времени выполнения, когда no such method pop exists.

Это потому, что pop был представлен на уровне API 9, из того, что я могу понять.

Но мой проект нацелен на уровень API 3. Как этот код действительно скомпилировался? Почему это закончилось ошибкой во время выполнения вместо ошибки времени компиляции?

Какие еще темные сюрпризы ждут меня? Это означает, что я должен проверить каждый возможный сценарий в своей игре, чтобы найти другие ошибки, подобные этому; Я думал, что это то, что делает компилятор - найти ошибки времени компиляции.

Как это стало ошибкой во время выполнения? Как найти подобные ошибки во время компиляции, а не во время выполнения?

  • 0
    Вы уверены, что используете API 3 в качестве цели, а не минимума?
  • 0
    Да, конечно. Чтобы проверить это: щелкните правой кнопкой мыши по проекту, выберите «Свойства», выберите «Android», и в разделе «Сборка проекта» у меня установлен только «Android 1.5» (уровень API 3).
Теги:
libgdx

2 ответа

1
Лучший ответ

Некоторые проекты libGDX не имеют реального кода игры в проекте Android. Поэтому вызов API не вызывает сбой. Если это ваша ситуация, вам нужно переместить код в настоящий проект андроида, а не просто связать его с проектом, отличным от android.

1

Вы должны установить цель сборки проекта в "свойствах Android" как минимум на уровне API 9, чтобы она могла успешно скомпилироваться. Возможно, ваш манифест имеет только <uses-sdk android:minSdkVersion="3"/>, которую я всегда интерпретировал как "хорошо, что должно быть хорошо, чтобы работать на этом, но без гарантий". до уровня 3 в пути сборки, и вы должны получить маркер ошибки.

  • 0
    Смотрите мой комментарий выше, он установлен на 3.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню