Ошибка неверного атрибута - PullRequest
       55

Ошибка неверного атрибута

1 голос
/ 03 сентября 2011

Я использую JavaMe.

Каждый раз, когда я пытаюсь инициализировать объект List, я получаю следующую ошибку:

Значение атрибута null не в правильном формате

Я использую Eclipse и JRE 6 на Mac OSX Lion.

Вот мой простой код:

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

public class ListTest extends MIDlet implements CommandListener {

private Display display;
private List optionsItem;
private Command exit;

public ListTest(){
    optionsItem = new List("List types of Item", Choice.IMPLICIT);

}

protected void startApp() {
        display = Display.getDisplay(this);
        optionsItem.append("TextField",null);
        optionsItem.addCommand(exit);
        optionsItem.setCommandListener(this);
        display.setCurrent(optionsItem);
}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {
  notifyDestroyed();
}

public void commandAction(Command c, Displayable d) {


  }
}

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Правильно ли вы инициализируете переменные-члены?

Объект Command никогда не инициализируется, то есть «выход» равен нулю

private Command exit;
0 голосов
/ 05 сентября 2011

Значение атрибута ... ошибка, кажется, указывает на некоторую проблему в MIDlet JAD .

Похоже, ваш мидлет не удается установить или запустить дажедо того, как ошибочный код с неинициализированной командой , указанной в предыдущем ответе, получит шанс на выполнение.

Для устранения подобных проблем я использовал бы самый простой код, который мог бы работать.Как, скажем, так:

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

public class SmokeTest extends MIDlet {

    protected void startApp() {
        Display display = Display.getDisplay(this);
        Form form = new Form("form");
        form.addCommand(new Command("Exit", Command.EXIT, 1));
        form.setCommandListener(new CommandListener() {
            public void commandAction(Command c, Displayable d) {
                notifyDestroyed();
            }
        });
        display.setCurrent(form);
    }

    protected void pauseApp() { }

    protected void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
}

Если MID-лет устанавливает и запускает OK, приведенный выше код будет отображать форму с заголовком «форма» и командой «Выход».Если этого не произойдет, лучше изучить документацию по Eclipse, чтобы понять, что не так с настройками конфигурации J2ME.

...