Я написал MIDlet, который выполняет несколько «продвинутых» вещей: выборка изображений из Интернета, изменение их размера, сохранение их на телефоне, отображение их.
Все это прекрасно работает в эмуляторе Nokia S60 3rd Edition FP1. Это устройство поддерживает MIDP 2.0 и CLDC 1.1 (также JSR75, который мне нужен для сохранения файлов). Он также работает как на Nokia E71 (физическое устройство).
Затем я попытался запустить MIDlet на нескольких других эмуляторах. Один из них, DefaultCldcJtwiPhone2 из Java ME SDK 3.0, также утверждает поддержку MIDP 2.0 и CLDC 1.1. В нем нет JSR75, который объясняет, почему «FileConnection не может быть разрешен для типа».
Это не объясняет, почему List.deleteAll(), String.equalsIgnoreCase (String) и некоторые другие не определены.
Фактические ошибки, которые я получаю:
- Метод CEIL (двойной) не определено для типа Math
- Метод DeleteAll() не определено для списка типа
- Метод equalsIgnoreCase (Строка) не определено для типа Строка
- метод GetWidth() не определено для типа Displayable
Когда я смотрю на MIDP 2.0 (т. JSR118) API (http://java.sun.com/javame/reference/apis/jsr118/), я могу ясно видеть, что все эти методы присутствуют, причем тег «с» является либо MIDP 2.0, либо CLDC 1.1.
My вопрос: почему эмулятор с поддержкой MIDP 2.0 не имеет доступа ко всем методам MIDP 2.0? Или, наоборот, что я делаю неправильно?
Вы используете IDE или только Java ME SDK? –
Я использую Eclipse. См. Мой комментарий к вашему ответу. – benvd
Я «решил» проблему. Таким образом, когда я изменил целевое устройство в дескрипторе приложения (файл конфигурации, возможно, был специфичен для среды Eclipse J2ME), эмулятор CLDC 1.1 не распознается как таковой. Оказывается, он работает правильно, когда я создаю новую конфигурацию отладки (или запуска), где я могу настроить эмулятор на тот, который я хочу ... – benvd