Приложение Hello World J2ME закрывается сразу после запуска на мобильном устройстве - Karbonn K25

Мне удалось установить приложение J2ME, состоящее из файла jar и jad, на свой мобильный телефон. Но он прекращается, как только запускается. Я не могу увидеть, действительно ли он печатает Hello World.

HelloWorld.java


    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;

    public class HelloWorld
        extends MIDlet 
        implements CommandListener {
      private Form mMainForm;

      public HelloWorld() {
        mMainForm = new Form("HelloWorld");
        mMainForm.append(new StringItem(null, "Hello, MIDP!"));
        mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));
        mMainForm.setCommandListener(this);
      }

      public void startApp() {
        Display.getDisplay(this).setCurrent(mMainForm);
      }

      public void pauseApp() {}

      public void destroyApp(boolean unconditional) {}

      public void commandAction(Command c, Displayable s) {
        notifyDestroyed();
      }
    }

Manifest.mf

Manifest-Version: 1.0
MIDlet-Name: HelloWorld
MIDlet-1: HelloWorld, , HelloWorld
MIDlet-Vendor: Ankit Gupta
MIDlet-Version: 1.0.0
MIDlet-Description: HW
MIDlet-Info-URL: http://google.com
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.0

HelloWorld.jad
----------------------------
MIDlet-1: HelloWorld, , HelloWorld
MIDlet-Name: HelloWorld
MIDlet-Version: 1.0.0
MIDlet-Vendor: Ankit Gupta
MIDlet-Jar-URL: HelloWorld.jar
MIDlet-Jar-Size: 1212
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.0

person Ankit Gupta    schedule 12.04.2012    source источник
comment
попробуйте переместить mMainForm инициализацию из конструктора в startApp - по моим воспоминаниям, этот способ был бы более надежным   -  person gnat    schedule 13.04.2012
comment
Я использую oracle_java_me_sdk-3_0_5 для компиляции моего класса. Определенно есть проблема с моей техникой компиляции. нужна помощь в этом.   -  person Ankit Gupta    schedule 13.04.2012
comment
ваш фрагмент кода мне кажется нормальным, я бы не ожидал, что он не сработает. Даже код, который я предложил переместить, подходит для компиляции. Что касается Java ME SDK, нормально ли работает ваш мидлет? на мой взгляд на ваш вопрос проблема появляется только на реальном мобильном телефоне   -  person gnat    schedule 13.04.2012
comment
Я согласен с @gnat, ваш код действительно кажется нормальным. Возможно, он не имеет к нему никакого отношения, но вы пытались установить метку StringItem вместо передачи null? Возможно, это ограничение вашей мобильной виртуальной машины.   -  person Telmo Pimentel Mota    schedule 14.04.2012


Ответы (1)


public void commandAction(Command c, Displayable s) {
notifyDestroyed();
}

Вызов notifyDestroyed () только для команд, для которых вы хотите завершить приложение, поместите его в условие if, например.

if(c == Command.BACK){
notifyDestroyed();
}
person nikhilr57    schedule 21.05.2014