Ich versuche, eine Anwendung mit J2ME zu schreiben, die javax.microedition.rms.RecordStore
verwendet, um persistente Daten zu speichern. Ich entwickle dieses Projekt in NetBeans 6.0 und J2ME 2.2 auf Gentoo. Wenn ich versuche, das Projekt auszuführen, erhalte ich einen Fehler, weil der Plattenspeicher anscheinend nicht erstellt werden kann. Hier ist ein Beispiel der Ausgabe einschließlich der Stack-Trace:Fehler beim Erstellen von javax.microedition.rms.RecordStore in NetBeans 6.0
jar: pre-run: cldc-run: Copying 1 file to /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 Copying 1 file to /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 Jad URL for OTA execution: http://localhost:8082/servlet/org.netbeans.modules.mobility.project.jam.JAMServlet/home/dzaslavs/ellipsix/programming/cataschedule/dist//CATASchedule.jad Starting emulator in execution mode Running with storage root rms javax.microedition.rms.RecordStoreException: error opening record store file at javax.microedition.rms.RecordStore.(RecordStore.java:2150) at javax.microedition.rms.RecordStore.openRecordStore(RecordStore.java:208) at net.ellipsix.cata.StopRecordStore.(StopRecordStore.java:48) at net.ellipsix.cata.CATAMIDlet.getStopList(CATAMIDlet.java:169) at net.ellipsix.cata.CATAMIDlet.startMIDlet(CATAMIDlet.java:64) at net.ellipsix.cata.CATAMIDlet.startApp(CATAMIDlet.java:449) at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44) at com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:372) at com.sun.midp.main.Main.runLocalClass(Main.java:461) at com.sun.midp.main.Main.main(Main.java:126)
Ich habe einen Link zu dem, was ich fand denken ist die Quelle RecordStore
, wo die Ausnahme ausgelöst wird: http://jcs.mobile-utopia.com/jcs/78052_RecordStore.java. Die entsprechende Zeile ist am unteren Rand nach unten, im Grunde wie folgt:
try {
...
}
catch (java.io.IOException ioe) {
...
throw new RecordStoreException("error opening record store " +
"file");
}
so dass deutet darauf hin, dass es eine IOException ausgelöst, wenn NetBeans versucht, den Plattenladen-Datei zu erstellen. Aber warum sollte das passieren? In der Ausgabe wird leider nicht genau angegeben, warum die Erstellung des Datensatzspeichers fehlschlägt. Weiß jemand, was möglicherweise falsch läuft, oder irgendetwas darüber, wie NetBeans intern RecordStore
behandelt?
Hier ist der Konstruktor von meinem Code, in dem der Fehler ausgelöst wird, wenn es relevant ist:
public StopRecordStore() throws RecordStoreException {
this.store = RecordStore.openRecordStore("freqstops", true);
if (store.getNumRecords() == 0) {
try {
byte[] collegeAllen = new StopRecord((short)1, "College & Allen").toBytes();
store.addRecord(collegeAllen, 0, collegeAllen.length);
}
catch(IOException ioe) {
ioe.printStackTrace();
} // do nothing
}
}
EDIT: ... keine Antworten nach 10 Stunden? "Ja wirklich?"