Java ME Anwendung Fein in Emulator läuft, aber wenn eingesetzt N70 abstürzt. Jede Art und Weise, den Grund zu identifizieren, für abstürzt?

StackOverflow https://stackoverflow.com/questions/2776347

  •  03-10-2019
  •  | 
  •  

Frage

Ich habe eine Java ME-Anwendung für CLDC-Plattform entwickelt. Es funktioniert gut, wenn in einem Emulator ausgeführt. Aber wenn ich es meinem N70 Telefon implementieren die Anwendung startet nicht bei allen im Telefon. In meiner Anwendung gibt es einig 14 Klassen und sind eine Instanz von jedem und sie in dem Vektor beim Start der Anwendung setzen. Die Klassen haben nur eine Variable und zwei Methoden. Kann man das Erstellen von vielen Fällen der Grund für seine Krachen sein?

Gibt es eine Möglichkeit, den Grund herauszufinden, warum die Anwendung nicht in der Lage ist, in dem Telefon zu starten?

Update: Seine läuft gut auf Emulator. Und noch eine Sache, die ich erwähnen möchte, ist, dass- Der Code nur an dem Punkt stoppt die Ausführung, wo diese 14 Fälle am Erstellen und Hinzufügen von ihnen zu dem Vektor. Bis zu diesem Punkt der Code ausführt, in Ordnung.

War es hilfreich?

Lösung

Es könnte davon abhängen, wo in dem Code, den Sie diese Instanzen erstellen. Wenn Sie sie in Ihrem MIDlet Konstruktor oder die startApp Methode versuchen Bewegen der Initialisierung in die run-Methode Ihrer Anwendung erstellen.

Eine Möglichkeit, J2ME-Anwendungen von Debugging, die auf dem Handy starten nicht durch „printf“ Stil Debug-Nachrichten in Ihrem Code hinzufügen in dem Plattenladen-System geschrieben werden und das Hinzufügen eines weiteren MIDlet Ihre Anwendung von RMS und Anzeige zu lesen diese Nachrichten. Oder Sie könnten nur ein Stück Code Kommentar und sehen, ob es funktioniert.

Andere Tipps

Sie können auf dem Gerät debuggen. Wenn der Emulator von Ihnen verwendeten Teil des Nokia SDK ist dann sollte es Einrichtungen anderswo auf dem Gerät auszuführen, Testen und Debuggen. (Ich würde ausführlicher zu diesem Beitrag, aber ich habe nur diese mit Sony Ericsson-Handys vor kurzem getan.)

Eine andere Möglichkeit ist es, die

Die Wahrscheinlichkeit, dass Ihre Anwendung tatsächlich den Java Virtual Machine Bytecode-Interpreter Thread abstürzt und den gesamten native Prozess beendet ist sehr klein.

Es ist geschehen, bevor aber Sie müssen einige andere mögliche Probleme zu beseitigen, bevor von einem tatsächlichen Crash überzeugt werden.

Es ist wahrscheinlicher, dass entweder:

  • Ihr MIDlet wird nicht erstellt oder nicht gestartet, weil die MIDP Laufzeit entscheidet es nicht korrekt ist.
    oder
  • Ihre MIDlet wirft einfach eine Ausnahme, dass Sie nicht fangen, die es aussehen kann, wie es brutal beendet wurde.

Da das MIDlet Installateur soll Sie daran zu hindern, einen schlechten MIDlet installieren, die abgefangene Ausnahme Problem ist wahrscheinlicher.

Wie eine abgefangene Ausnahme zu finden:

  • Starten Sie mit einfachsten Hello World MIDlet unter Verwendung eines Form, so dass Sie leicht mehr StringItems am oberen Rand des Bildschirms einfügen können.
  • Erstellen und ein neues Thread in MIDlet.startApp() starten
  • In der Überschreibung von Thread.run(), fügen Sie einen try{}catch(Throwable){} Block.
  • Innerhalb dieses Block, tun, was auch immer Ihre ursprüngliche MIDlet tat.
  • Verwenden Sie das Formular als Standardausgabe für das Debuggen.

Sie können die Formular Protokollierung verwenden, um sicherzustellen, dass Sie geben nicht eine Endlosschleife, bis Anzeige Ausnahmeklassen und Nachrichten, um Flagge logische Meilensteine, Variablenwerte anzuzeigen ...

Das ist der erste Schritt, um herauszufinden, was los ist.

Ich sah sich auch ein ähnliches Problem und wenn ich meine MIDLET als Midlet neu kompiliert 1.0 dann funktionierte es gut. Es scheint, wie N70 nicht in der Lage ist, die neue Version von MIDLET auszuführen. Ich glaube, Sie degradieren und Re-Test Ihre midlet.

Viele Grüße

Junaid

scroll top