站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题Moto V3c RMS 的奇怪问题,谁遇到过

Moto V3c RMS 的奇怪问题,谁遇到过

摘要: Moto V3c RMS 的奇怪问题,谁遇到过


我在Moto V3c机器上写一个游戏在使用RMS时出现了一个很奇怪的问题,在第一次读取RMS记录时打开RMS抛出RecordStoreNotFoundException异常,这很正常,写入时没问题写入完成之后进行读取测试一下也写进去了,但是在再次进入程序是读取RMS记录依然抛出RecordStoreNotFoundException异常,好像是在上一次使用的RMS写入时创建的记录被删除了,谁见过这种问题,帮帮我,我在这个地方搞了好久了


Moto的机器好像是推出程序的时候必须close掉rms,不然就不会写入。


我写了closeRecordStore()方法,可还是不行



RecordStore.openRecordStore("myrms", true);

其中的第二个参数,你使用的是true吗?


是啊


源代码,拿出来看看,我最近也写了一个,没有你这样的问题啊


每回都true当然就清掉了
private void connect(){
try {
try{
recStore = RecordStore.openRecordStore("OrderDB",false);
}
catch( RecordStoreNotFoundException re ){
}

if(recStore == null){
recStore = RecordStore.openRecordStore("OrderDB",true);
}
}
catch (Exception e) {
System.out.println("Error " + e);
errorMessage.setLabel ("Error:");
errorMessage.setText (e.toString ());
}

}


PS:上面是IBM Developerworks网站上教程的示例连接代码


每回都是true,也不会清掉。

true的意思是:如果有,那么打开,如果没有,那么创建并且打开。

个人觉得可能是你在写入之后的io操作不对。

确认一下是否你的所有的流和RecordStore都关闭了。


虽然MOTO的机器对JAVA实现不好,可是我觉得问题还是应该先从自身找起?
我想你要表达的意思是第一次创建RMS,以后读,我的方案是
try {
RecordStore rs = RecordStore.openRecordStore("rms", false);
} catch (RecordStoreFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreNotFoundException e) {
// TODO Auto-generated catch block
try {
RecordStore rs = RecordStore.openRecordStore("rms", true);
} catch (RecordStoreFullException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RecordStoreNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RecordStoreException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


cuilichen(fjfjfjfj)说的不错,这个问题在一次调试中忽然莫名其妙的解决了,之后我走查了代码
还是没有发现问题的原因,多半是某个地方疏漏了什么。至于angelleecash(陈亮)至于贴出的代码和我写的基本上也差不多,看来以后要小心一点了


↑返回目录
前一篇: 请问midp目前支持ipv6吗?请各方高人指教!
后一篇: 请问MIDP API在哪里可以下载或查阅?