Java ME Kann mein Projekt nicht mehr ausführen?

bruce85

Bekanntes Mitglied
Hallo nochmal,
ich hab ein großes Problem, ich hab mich verklickt bei dem Wireless Toolkit und ausversehen auf Project->Run via OTA geklickt.
Jetzt wenn ich mein Projekt Kompiliere und es anschließend ausführen möchte, funktioniert es nicht mehr.
Kompilieren geht ohne Fehler, aber wenn das Phone Tool auf geht und ich es dann starten möchte, dann erhalte ich folgende Fehlermeldung:
Code:
Running with storage root C:\Users\Name\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: German_Germany.1252
Running in the identified_third_party security domain
Unable to create MIDlet Test
java.lang.ClassNotFoundException: Test
	at com.sun.midp.midlet.MIDletState.createMIDlet(+29)
	at com.sun.midp.midlet.Selector.run(+22)

Ich habe schon versucht das Programm neu zu installieren und habe sogar die gespeicherte Daten gelöscht und neu erstellt, leider hilft das alles nix.

Ich komme echt nicht mehr weiter, kann mir Vielleicht jemand helfen, wo das Problem liegen könnte?

Ich danke euch schonmal.

Edit: Ich hab das Problem gelöst.
Ich hab irgendwie versucht ein package zu laden, jetzt habe ich das gelöscht und es geht.
Java:
package java.awt.font;

MfG
 
Zuletzt bearbeitet:
Hallo nochmal,
ich habe nur noch ein kleines Problem und zwar, wenn ich ein Array erstelle und darauf zugreifen möchte, dann bleibt mein Programm einfach hängen.
Hier der Fehler:
Java:
Running with storage root C:\Users\Name\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: German_Germany.1252
Running in the identified_third_party security domain
java.lang.NullPointerException
	at MyCanvas.paint(+8)
	at javax.microedition.lcdui.Canvas.callPaint(+85)
	at javax.microedition.lcdui.Display.repaint(+82)
	at javax.microedition.lcdui.Display.registerNewCurrent(+235)
	at javax.microedition.lcdui.Display.access$700(+6)
	at javax.microedition.lcdui.Display$DisplayAccessor.foregroundNotify(+46)
	at javax.microedition.lcdui.Display$DisplayManagerImpl.notifyWantsForeground(+152)
	at javax.microedition.lcdui.Display$DisplayManagerImpl.access$100(+6)
	at javax.microedition.lcdui.Display.setCurrent(+70)
	at Trainingsplan.startApp(+18)
	at javax.microedition.midlet.MIDletProxy.startApp(+7)
	at com.sun.midp.midlet.Scheduler.schedule(+270)
	at com.sun.midp.main.Main.runLocalClass(+28)
	at com.sun.midp.main.Main.main(+80)
Execution completed.
3439510 bytecodes executed

Und hier mal ein teil von meinem Code:
Java:
class MyCanvas extends Canvas {
         private class TListe {
                 String Tag;
                 String Datum;
         }

         TListe Liste[] = new TListe[1];
         public void paint(Graphics g) {
                 Liste[0].Tag = "Montag";

                 g.setColor(127,127,127);
                 g.fillRect(0,0,getWidth(),getHeight());

                 Font aFont;
                 aFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE);
                 g.setFont(aFont);
                 g.setColor(255,255,255);
                 g.drawString("Tag",(getWidth()/2)-((getWidth()/2)/2)-(aFont.stringWidth("Tag")/2),0,g.TOP|g.LEFT);
                 g.drawString("Datum",(getWidth()/2)+((getWidth()/2)/2)-(aFont.stringWidth("Datum")/2),0,g.TOP|g.LEFT);
                 int zaehler = 0;
                 for (int i=0; i<1; i++) {
                         zaehler = 1 - zaehler;
                         if (zaehler == 0) {
                                 g.setColor(0,255,255);
                         } else {
                                 g.setColor(0,0,255);
                         }
                         g.fillRect(0, i*21+21, getWidth(), 20);
                         g.setColor(255,255,255);
                         g.drawString("Montag",(getWidth()/2)-((getWidth()/2)/2)-(aFont.stringWidth("Montag")/2),i*21+21,g.TOP|g.LEFT);
                         g.drawString("22.11.2011",(getWidth()/2)+((getWidth()/2)/2)-(aFont.stringWidth("22.11.2011")/2),i*21+21,g.TOP|g.LEFT);
                         //g.drawString(Liste[i].Tag,(getWidth()/2)-((getWidth()/2)/2)-(aFont.stringWidth(Liste[i].Tag)/2),i*21+21,g.TOP|g.LEFT);
                 }
                 g.setColor(255,255,255);
                 g.drawLine(0,20,240,20);
                 g.drawLine(120,0,120,320);
         }
}

Bei der Zeile 9 ist der Fehler.
Ich greife auf ein Array zu, die nicht existiert oder so.
Ich möchte einfach einen Array erstellen, die weitere Eigenschaften haben, so wie ich es hier auch versucht habe mit class TListe.

Ich danke euch schonmal für die Hilfe.

MfG
 
Du musst deine Liste eben noch initialisieren.

Du hast da einen klassischen Fehler gemacht. Du instanzierst ja nur das Array, allerdings nicht die Elemente. Wenn du also schreibst:

Java:
TListe Liste[] = new TListe[1];

Dann erzeugst du ein Array das so aussieht: { null }

Am besten ist es du packst das Initialisieren in den Konstruktor:

Java:
class MyCanvas extends Canvas {
         private class TListe {
                 String Tag;
                 String Datum;
         }
 
         private TListe[] tagesListe; // Das ist Java, kein C ;-) => also sprechende Namen verwenden

         public MyCanvas() {
              super();
              initialize();
         }

         public MyCanvas(GraphicsConfiguration config) {
              super(config);
              initialize();
         } 

         private void initialize() {
             // Array initialisieren
             tagesListe = new TListe[1]();
             // Element initialisieren
             tagesListe[0] = new TListe();
             tagesListe[0].Tag = "Freitag";
             tagesListe[0].Datum = "12.12.2012";
         }
         [...]
         /* Dein paint kann gleich bleiben außer das Liste jetzt tagesListe heißt */
 
Vielen Dank.
Irgendwie bekomme ich einen Fehler, wenn ich es Kompilieren möchte:
Java:
';' expected
             tagesListe = new TListe[1]();

Woran könnte das liegen?

MfG
 
Ups, das sollte

Java:
tagesListe = new TListe[1];

und nicht

Java:
tagesListe = new TListe[1]();

sein.
 
Vielen Dank.
So schlau war ich auch schon, aber dann hat mir der Kompiler diesen Fehler angezeigt:
Java:
cannot find symbol
symbol  : class GraphicsConfiguration
location: class MyCanvas
         public MyCanvas(GraphicsConfiguration config) {
                         ^
1 error

Jetzt hab ich "MyCanvas(GraphicsConfiguration config)" einfach mal entfernt und jetzt funktioniert es.

Ich danke dir Vielmals für die Hilfe.

MfG
 

Neue Themen


Zurück
Oben