【发布时间】:2013-02-05 08:47:53
【问题描述】:
我正在开发一个在 RMS 中存储用户名和密码的应用程序,该应用程序在诺基亚 s60 上运行良好,但在诺基亚 s40 手机中,应用程序给出 IllegalArgumentException,然后应用程序关闭。如果它在 S60 手机上工作正常,我无法理解是什么问题。
public void getLogin() {
//System.out.println(getUsernameEdit().getString()+","+ getPasswordEdit().getString());
m=new Message();
reply=m.getLogin(getUsernameEdit().getString(), getPasswordEdit().getString());
if (reply) {
String response="";
try{
if(count==0){
rs = RecordStore.openRecordStore(db, true);
rs.addRecord("true".getBytes(), 0, "true".length());
rs.addRecord(getUsernameEdit().getString().getBytes(), 0, getUsernameEdit().getString().length());
rs.addRecord(getPasswordEdit().getString().getBytes(), 0, getPasswordEdit().getString().length());
rs.closeRecordStore();
}
else{
rs = RecordStore.openRecordStore(db, false);
byte b[]=rs.getRecord(1);
response=new String(b,0,b.length);
System.out.println(response);
if(response.equals("true")){
rs.setRecord(2, getUsernameEdit().getString().getBytes(), 0, getUsernameEdit().getString().length());
rs.setRecord(3, getPasswordEdit().getString().getBytes(), 0, getPasswordEdit().getString().length());
}
rs.closeRecordStore();
getSenderEdit().setString(getUsernameEdit().getString());
}
}catch(Exception e){
getErrorBox().setString(e.toString());
}
switchDisplayable(getSavingSuccess(), getMessageForm());
// write post-action user code here
} else {
// write pre-action user code here
switchDisplayable(getSavingError(), getSettings());
// write post-action user code here
}
// enter post-if user code here
}
【问题讨论】:
-
getUsernameEdit().getString()持有什么价值? -
'getUsernameEdit().getString()' 拥有一个 10 位数的手机号码,但我试图评论除 'rs.addRecord("true".getBytes(), 0, "true" 之外的所有内容。长度());'仍然出现非法参数异常和应用程序退出。
-
@Raffaele 它正在模拟器上工作,那么如何在 s40 移动设备中打印堆栈跟踪?
-
你怎么知道它抛出了异常?
-
@Raffaele 应用程序向选项 Details 和 Quit 提供消息应用程序错误,详细信息是 IllegalArgumentException