![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
gregson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Доброго дня всем!
Почитал кучу тем тут, очень познавательно. Сам не профессионал, в силу обстоятельство немного поразбирался, нарвался на проблему, которую не хватает мозга победить самому. Вобщем есть некое j2me приложение в задачи которого входит подключение к серверу через socket connection и обмен информацией с сервером (командами). Все работает отлично, только не на Nokia 3110c. Работа приложения проверялась на коммуникаторе gloiifish, на sonyericcson, даже на прошлого поколения нокиях все отлично запускается и работает. Компилировал в NetBeans IDE 6.5.1 (Build 200903060201), MIDP 2.0, CLDC 1.1 (1.0 пробовал). При запуске приложения на Nokia 3110c выдается ошибка No Such Field Error:java/lang/NoSuchFieldError: No such field formMainForm.LMainPackage/FormEx;. Фишка заключается в том, что я попросил откомпилировать исходники ребят которые кодят в Eclipse среде, мне прислали JAD и JAR, я залил их в ту же самую нокию 3110с и приложение запустилось без каких либо проблем. Полез на сайт eclipse.org скачал там Pulsar якобы спецсофт для J2ME, импортировал в него свои source, скомпилировал, залил на свой коммуникатор, не работает...вообще говорит jar неправильный. Из всего вышеописанного я сделал такие выводы: Вывод 1. Либо NetBeans вообще не способен откомпилировать мое приложения с учетом наворотов java машины nokia 3110c, либо способен, но после 2х дней поиска в настройках проекта и настройках среды я так ничего и не нашел (большинство вещей проверялось методом всемирного тыка и перезаливки свежеоткомпиленного приложения в телефон). Скачал Нокиевский эмулятор, на нем все работает. Вывод 2. Я ничерта не понял как собрать нормальный jad+jar в Pulsar. Видимо намудрил в настройках, которых там немало. Приложение изначально создавалось в Eclipse не мной, я его импортировал в NetBeans и незначительно дописывал. Мне передали код и собранные jad и jar (в eclipse), залил это в нокию 3110с, все работает. Первоначальный код импортировал в NetBeans, собрал, залил в нокию, ошибочка... NetBeans и Eclipse вообще по разному компилируют? Или все же я упустил что то существенное в настройках Netbeans. Java установленные у меня версии JRE 1.6.0_13 JRE 1.6.0_04 Это сообщение отредактировал(а) gregson - 28.6.2009, 18:22 |
|||
|
||||
W0LF |
|
||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
Я бы предложил как вариант попробовать сборку проекта в J2ME Wireless Toolkit или ant+antenna.
компилируют они одинаково, дальше должны идти настройки сборки, там уж не знаю - не работал с j2me ни в эклипсе ни в нетбинсе.
это runtime environment, в телефоне, если не изменяет память используется третья RE, хотя могу ошибаться. -------------------- iOS developer |
||||
|
|||||
gregson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
J2ME Wireless Toolkit - это я так понимаю речь идет об эмуляторе, он у меня установлен с самого начала 2.5.2 вроде версия, отлично все работает в нем.
Зашел на сайт Антены, нифига не осилил, все таки не мой профиль конечно... Ошибка звучала: No Such Field Error:java/lang/NoSuchFieldError: No such field formMainForm.LMainPackage/FormEx;. Мне говорили что подобная ошибка возникает если из одного класса обратится в массив созданный в другом классе, но насколько я понял тогда ошибка будет на всех аппаратах. Вот полностью код FormEx, если чем-то поможет. import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; public class FormEx extends Form implements VisibleObject, CommandListener, UserInterfaceElements { private Displayable FLastDisplayable; private CommandListener FOtherCommands; private Command cmdBack = new Command("Назад", Command.BACK, 0); private String FName; public String Name() { return FName; } public Displayable LastDisplayable() { return FLastDisplayable; } public void setOtherCommandsListener(CommandListener cl) { FOtherCommands = cl; } public FormEx(String title, String Name, boolean showBackCommand) { super(title); FName = Name; if (showBackCommand) super.addCommand(cmdBack); } public FormEx(String title, String Name) { this(title, Name, true); } public void Hide() { if (FLastDisplayable == formWait) FLastDisplayable = formWait.LastDisplayable(); MainMidlet.GetDisplay().setCurrent(FLastDisplayable); } public void Show( String str, Displayable nextForm ) { Show(str); FLastDisplayable = nextForm; } public void Show( Displayable nextForm ) { Show(); FLastDisplayable = nextForm; } public void Show( String str ) { super.deleteAll(); super.append(str); Show(); } public void Show() { Displayable tmp = MainMidlet.GetDisplay().getCurrent(); try{ if (tmp == this) return; FLastDisplayable = tmp; } finally { tmp = null; } FLastDisplayable = MainMidlet.GetDisplay().getCurrent(); if (FLastDisplayable == formWait) FLastDisplayable = formWait.LastDisplayable(); MainMidlet.GetDisplay().setCurrent(this); super.setCommandListener(this); } public String isClassName() { return "FormEx"; } public String toString() { return super.toString(); } public boolean isObjectOfClass(Class x) { return (x.getClass() == this.getClass()); } public boolean isShow() { return (FLastDisplayable != null); } public void commandAction(Command arg0, Displayable arg1) { if (arg1 == this) { if (arg0 == cmdBack) Hide(); else { if (FOtherCommands != null) FOtherCommands.commandAction(arg0, arg1); } } else { if (FOtherCommands != null) FOtherCommands.commandAction(arg0, arg1); } } } |
|||
|
||||
Окунь |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 8.2.2007 Где: Москва Репутация: 2 Всего: 2 |
gregson,
скорее всего, что-то неправильно делаешь в NetBeans, поэтому и возникает ошибка. Сам я НетБинсом редко пользуюсь (не нравится), поэтому посоветовать на счет него ничего не могу. В эклипсе же все можно сделать (и настроить среду, и собрать мидлет) за 5 минут. MTJ По этой ссылке несколько видео с подробным руководством, как это сделать. |
|||
|
||||
gregson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Спасибо за видеогид, установил Pulsar, импортировал исходники, собрал и все запустилось, никаких настроек не трогал. Все таки непонятно что с Netbeans, но нет времени разбираться.
|
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |