Hello android开发者,
我很难完成这项工作,但失败了,现在想对这个错误提出建议。问题是我使用'SQLiteDabase'库中的'update'方法,并且 NOT ONLY 在实际设备上工作。
奇怪的是它在eclipse android模拟器上没有问题,但只在实际设备上。如果有人知道如何解决这个问题或有建议,你能帮帮我吗?非常感谢您对此问题的任何帮助。下面的代码是我的方法和错误消息。
public void updateDBMessages(int column_no, String key, Object value){
SQLiteDatabase db = getWritableDatabase();
ContentValues table_value = new ContentValues();
if(value.getClass().equals(String.class)){
table_value.put(key, value.toString());
}
else if (value.getClass().equals(Integer.class)){
table_value.put(key, (Integer)value);
}
// THE ERROR HAPPENS ON THIS COMMAND!!
db.update(VM_TABLE_NAME, table_value, "_id="+column_no, null);
}
[错误信息日志]
07-05 08:10:39.721: ERROR/AndroidRuntime(10295): FATAL EXCEPTION: main 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): android.database.sqlite.SQLiteDiskIOException: error code 10: disk I/O error 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at android.database.sqlite.SQLiteStatement.native_execute(Native Method) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1727) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1656) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at ca.slipline.android.asterdroid.VoiceMailScreen.updateDBMessages(VoiceMailScreen.java:607) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at ca.slipline.android.asterdroid.VoiceMailScreen.access$9(VoiceMailScreen.java:594) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at ca.slipline.android.asterdroid.VoiceMailScreen$3.onClick(VoiceMailScreen.java:482) 07-05 08:10:39.721: ERROR/AndroidRuntime(10295): at android.view.View.performClick(View.java:2501)
答案 0 :(得分:0)
您似乎正在尝试更新记录with conflict。您应该修改update
语句(检查where子句或字段类型等)或只使用updateWithOnConflict
答案 1 :(得分:0)
我找到了解决方案。这是一种Android本身的问题所以我只是将'update'方法更改为'execSQL',以便使用SQL命令'UPDATE'手动更新它。