javax.microedition.rms.RecordStore
永続データの保存に使用する J2ME でアプリケーションを作成しようとしています。Gentoo の NetBeans 6.0 および J2ME 2.2 でこのプロジェクトを開発しています。プロジェクトを実行しようとすると、明らかにレコード ストアを作成できないため、エラーが発生します。スタック トレースを含む出力のサンプルを次に示します。
瓶: 実行前: cldc 実行: 1 つのファイルを /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 にコピーしています 1 つのファイルを /home/dzaslavs/ellipsix/programming/cataschedule/dist/nbrun1623864904410254936 にコピーしています OTA 実行用の Jad URL: http://localhost:8082/servlet/org.netbeans.modules.mobility.project.jam.JAMServlet/home/dzaslavs/ellipsix/programming/cataschedule/dist//CATASchedule.jad エミュレータを実行モードで起動 ストレージ ルート rms での実行 javax.microedition.rms.RecordStoreException: レコード ストア ファイルを開く際のエラー javax.microedition.rms.RecordStore.(RecordStore.java:2150) javax.microedition.rms.RecordStore.openRecordStore(RecordStore.java:208)で net.ellipsix.cata.StopRecordStore.(StopRecordStore.java:48) で net.ellipsix.cata.CATAMIDlet.getStopList (CATAMIDlet.java:169) で net.ellipsix.cata.CATAMIDlet.startMIDlet (CATAMIDlet.java:64) で net.ellipsix.cata.CATAMIDlet.startApp (CATAMIDlet.java:449) で javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44) で com.sun.midp.midlet.Scheduler.schedule(Scheduler.java:372) で com.sun.midp.main.Main.runLocalClass (Main.java:461) で com.sun.midp.main.Main.main(Main.java:126) で
例外がスローされているのソースと思われるものへのリンクを見つけました: http://jcs.mobile-utopia.com/jcs/78052_RecordStore.java。関連する行は、基本的に次のように、下部近くにあります。RecordStore
try {
...
}
catch (java.io.IOException ioe) {
...
throw new RecordStoreException("error opening record store " +
"file");
}
これは、NetBeans がレコード ストア ファイルを作成しようとしたときに IOException がトリガーされたことを示しています。しかし、なぜそれが起こるのでしょうか?残念ながら、出力には、レコード ストアの作成が失敗した正確な理由が示されていません。何がうまくいかないのか、または NetBeans がRecordStore
内部で s を処理する方法について誰か知っていますか?
関連する場合、エラーがトリガーされる私のコードのコンストラクターは次のとおりです。
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 : ...10時間経っても返事がない?本当に?