Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> No Such Field Error на Nokia 3110c, сокетовое j2me приложение проблемит 
:(
    Опции темы
gregson
Дата 28.6.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
W0LF
Дата 28.6.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Я бы предложил как вариант попробовать сборку проекта в J2ME Wireless Toolkit или ant+antenna.

Цитата

NetBeans и Eclipse вообще по разному компилируют?

компилируют они одинаково, дальше должны идти настройки сборки, там уж не знаю - не работал с j2me ни в эклипсе ни в нетбинсе.
Цитата

Java установленные у меня версии
JRE    1.6.0_13    
JRE    1.6.0_04  

это runtime environment, в телефоне, если не изменяет память используется третья RE, хотя могу ошибаться.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
gregson
Дата 28.6.2009, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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); }
    }
}

PM MAIL   Вверх
Окунь
Дата 29.6.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.2.2007
Где: Москва

Репутация: 2
Всего: 2



gregson
скорее всего, что-то неправильно делаешь в NetBeans, поэтому и возникает ошибка. Сам я НетБинсом редко пользуюсь (не нравится), поэтому посоветовать на счет него ничего не могу.
В эклипсе же все можно сделать (и настроить среду, и собрать мидлет) за 5 минут.
MTJ
По этой ссылке несколько видео с подробным руководством, как это сделать.
PM MAIL   Вверх
gregson
Дата 2.7.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



Спасибо за видеогид, установил Pulsar, импортировал исходники, собрал и все запустилось, никаких настроек не трогал. Все таки непонятно что с Netbeans, но нет времени разбираться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1085 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.