# Maximale Kompatibilität?



## RedNifre (13. Jul 2008)

Hallo!

Was muss ich tun, damit meine Programme möglichst auf jedem Handy laufen? 
(Bin absoluter Anfänger was die JavaME betrifft und habe noch kein Programm zum Laufen gekriegt)

Im Moment habe ich folgendes Problem mit meinem Nokia 6230i:
Ich habe ein minimales "Hello World"-Programm geschrieben, was auch wunderbar in den Sun-Emulatoren läuft, unabhängig welches WTK ich verwende.

Wenn ich es aber auf mein 6230i übertrage läuft es nicht. Es erscheint zwar im Ordner "Sammlung" und zeigt sogar das Icon, dass ich im JAD angegeben habe, der Name wird aber grau angezeigt. Wenn ich es starten möchte kommt die Fehlermeldung "Programm ungültig!".
Im Kontextmenü kann ich das Programm nur löschen, alle anderen Optionen (Zum Beispiel "Details") sind ausgegraut.

Was muss ich in Eclipse einstellen, damit es läuft?


----------



## The_S (14. Jul 2008)

Maximale Kompatibilität erreichst du, indem du alles relativ hältst (was aber teilweise recht viel Rechenaufwand erfordert). Generell kannst du so gut wie alle Emulatoren in die Tonne treten - nur wenn ein Programm auf einem Emulator läuft, heißt das noch lange nicht, dass die selbe Anwendung auch auf dem dazugehörigen Echtsystem so läuft. Du hast hier aber kein Kompatibilitätsproblem, sondern musst erstmal überhaupt eine Anwendung zum Laufen bekommen  .

Ist das Manifest und/oder das JAD richtig konfiguriert?


----------



## RedNifre (14. Jul 2008)

Danke!

Die Angaben habe ich alle relativ gehalten, es läuft auch perfekt in allen Sun-Emulatoren, unabhängig von der Auflösung.
Im JAD habe ich alles auf die niedrigste Versionsnummer gesetzt (ohne zu wissen was das alles überhaupt ist).
Von der Manifest-Datei weiß ich garnichts, wird die nicht automatisch generiert?

Gibt es ein einfaches Rezept, wie ich EclipseME dazu kriege, das JAR/JAD so zu kompilieren, dass es auf meinem Nokia 6230i (Series 40) läuft?


----------



## The_S (14. Jul 2008)

Das Manifest wird in das JAR (anhand der JAD) integriert. Das geschieht automatisch. Wenn du alles im JAD auf die niedrigste Version stellst, dann musst du auch mit dieser Version kompiliert haben. Ich vermute mal du verwendest das MIDP 2 und nicht 1!?


----------



## RedNifre (14. Jul 2008)

Hm, ich glaube nicht.

In EclipseME kann man den JAD sehr komfortabel editieren. Da habe ich MIDP1.0 ausgewählt und schätze, dass sich Eclipse beim Kompilieren danach richtet.

Andererseits weiß ich garnicht, ob das JAR/JAD was erstellt wird überhaupt läuft. Bisher habe ich das Programm nur in Eclipse per Run-Dialog gestartet. Bei gewöhnlichen Java-Programmen muss man ja vor der Erstellung des JARs angeben, wo die main-Methode liegt. Gibt es bei JavaME etwas ähnliches, sprich, muss ich angeben wo die startApp-Methode liegt?


----------



## The_S (14. Jul 2008)

RedNifre hat gesagt.:
			
		

> In EclipseME kann man den JAD sehr komfortabel editieren.



Ich kenne Eclipse-ME.



			
				RedNifre hat gesagt.:
			
		

> Da habe ich MIDP1.0 ausgewählt und schätze, dass sich Eclipse beim Kompilieren danach richtet.



Nein, tut Eclipse nicht. Warum auch!?



			
				RedNifre hat gesagt.:
			
		

> Gibt es bei JavaME etwas ähnliches, sprich, muss ich angeben wo die startApp-Methode liegt?



Das wird im JAD/Manifest angegeben.


----------



## RedNifre (14. Jul 2008)

Ehm, wo genau kann ich denn noch die MIDP einstellen? In den Projekt-Properties kann ich nur das WTK wählen (Hab ich ja auf WTK104 gesetzt).



> RedNifre hat folgendes geschrieben::
> Da habe ich MIDP1.0 ausgewählt und schätze, dass sich Eclipse beim Kompilieren danach richtet.
> 
> 
> ...


Naja, ich dachte dass einem EclipseME die ganze "Grunt Work" abnimmt. Und da man die JAD über eine GUI editiert dachte ich, dass die Änderung darin von Eclipse beachtet werden.
Sei's drum, wo stelle ich die MIDP richtig ein? Und was muss ich noch anpassen?



> RedNifre hat folgendes geschrieben::
> Gibt es bei JavaME etwas ähnliches, sprich, muss ich angeben wo die startApp-Methode liegt?
> 
> Das wird im JAD/Manifest angegeben.


Wo denn genau? Ich finde es nicht. :-([/code]


----------



## The_S (14. Jul 2008)

Bei den Preferences unter J2ME => Device Managment kannst du zum Einen den gewünschten Emulator auswählen (Dort findest du auch, welche CLDC bzw. MIDP Version verwendet wird). Wenn du nur das 1.04er WTK installiert hast, dann sollte da wohl auch die 1er MIDP-Version dabei sein (hab bis jetzt nur mit dem neuesten WTK entwickelt).

Im JAD-Editor von Eclipse => Midlets stellst du das gewünschte Mitdlet ein.


----------



## RedNifre (14. Jul 2008)

Ich hab's jetzt hingekriegt!

Vielen, vielen Dank!


----------



## RedNifre (15. Jul 2008)

Ach ja, falls sich jemand fragt, um was es geht: Hier ist ein Video von Starcraft für's Handy (6230i)! ;-)
http://www.youtube.com/watch?v=xjBlXQI8nTc


----------



## The_S (15. Jul 2008)

Und woran lags?


----------



## RedNifre (15. Jul 2008)

Ich hab erstmal die Nokia Developer FAQ durchgelesen und dann alles genau für die Series 40 eingestellt (Also WTK2, MIDP 2.0, CLDC 1.1).
Aber wahrscheinlich lag es nur daran, dass ich keinen Einstiegspunkt im JAD gesetzt hatte.


----------

