MIDlet nicht auswählbar



  • Hi!

    Ich habe angefangen mich mal mit J2ME zu beschäftigen. Nun wollte ich ein "Hello World"-MIDlet schreiben. Ich habe das Programm geschrieben, es ganz normal und ohne Fehler compiliert und in ein JAR gepackt.

    Inhalt Jad:

    MIDlet-Name: HelloWorld
    MIDlet-Version: 1.0
    MIDlet-Vendor: no one
    MIDlet-Jar-Size: 1055
    MIDlet-Data-Size: 1055
    MIDlet-Description: Ein einfaches HelloWorld-MIDlet
    MIDlet-Jar-URL: file://c:/Javawork/CLDC-Work/HelloWorld.jar

    Inhalt Jar-Manifest:

    MIDlet-Name: HelloWorld
    MIDlet-Version: 1.0
    MIDlet-Vendor: no one
    MIDlet-Descriptor: Mein Hello-World-MIDlet
    MIDlet-Data-Size: 1055
    MIDlet-1: HelloWorld,,HelloWorld
    MicroEdition-Profile: MIDP-2.0
    MicroEdition-Configuration: CLDC-1.1

    Hier noch der Quellcode des MIDlets:

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    
    public class HelloWorld extends MIDlet {
    
        private Display display;
        TextBox text = null;
    
        public HelloWorld() {
    
            display = Display.getDisplay(this);
    	text = new TextBox("Hello World!", "\"Hello World\"-MIDlet ", 20, 0);
        }
    
        public void startApp() {
    
    	display.setCurrent(text);
        }
    
        public void pauseApp() { };
    
        public void destroyApp(boolean d) { }
    }
    

    1. Frage: Warum funktioniert das nicht? Wenn ich den JAD doppelklicke öffnet sich der Emulator jedoch wird mein MIDlet nicht in der Liste angezeigt, dessen überschrift ja ist: "select one to lunch"

    2. Frage: Kann mir jemand das Attribut MIDlet-Data-Size genauer erklären? Was muss ich da angeben?

    Danke!



  • Ok habe den Fehler gefunden. Aber das MIDlet kann nicht gestartet werden. Folgende Fehlermeldung wird stattdessen angezeigt:

    HelloWorld, HelloWorld
    Exception: java.lang.IllegalArgumentException

    Das kuriose ist, dass es einfach am Inhalt der beiden ersten Parameter für den Constructor liegt!

    Hier mal 2 bis auf den Inhalt dieser Parameter identische codes:

    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    
    public class HelloWorld extends MIDlet {
    
        private Display display;
        TextBox text = null;
    
        public HelloWorld() {
    
            display = Display.getDisplay(this);
    	text = new TextBox("Actually its only a different content.", "Different Content", 20, 0);
        }
    
        public void startApp() {
    
    	display.setCurrent(text);
        }
    
        public void pauseApp() { };
    
        public void destroyApp(boolean d) { }
    }
    
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    
    public class HelloWorld2 extends MIDlet {
    
        private Display display;
        TextBox text = null;
    
        public HelloWorld2() {
    
            display = Display.getDisplay(this);
    	text = new TextBox("Different Content", "Actually its only a different content.", 20, 0);
        }
    
        public void startApp() {
    
    	display.setCurrent(text);
        }
    
        public void pauseApp() { };
    
        public void destroyApp(boolean d) { }
    }
    

    Diese beiden Programme habe ich ins jar gepackt und im jad vermerkt. Das erste läuft, der Text wird angezeigt, also das MIDlet wird gestartet und läuft auch.
    Das 2. MIDlet, welches sich lediglich durch den Inhalt der Textbox und den Titel vom anderen unterscheidet(ich hab sie einfach vertauscht), nicht!!!
    Was soll das!?



  • Ich hoffe wenn Du im Code die Klasse einfach HelloWorld2 nennst, hast Du auch die *.class-Datei so benannt... 🙄 😕



  • ...



  • Natürlich! Da es ja heißt "public class HelloWorld2" wäre es mir auch in jedem Fall aufgefallen, wenn ich die .java-Datei nicht so benannt hätte.



  • Pogo schrieb:

    Natürlich! Da es ja heißt "public class HelloWorld2" wäre es mir auch in jedem Fall aufgefallen, wenn ich die .java-Datei nicht so benannt hätte.

    Äh... mir jedenfalls nicht unbedingt. 🙂

    Aber dann weiß ich auch net. 🕶



  • ...



  • MAG schrieb:

    ...

    Verstehe!

    Guter Punkt! 🤡 👍



  • Also ich habe jetzt alle Probleme behoben und es läuft. 😃
    Danke für die Antworten Sgt. Nukem! 🙂


Anmelden zum Antworten