Hello android developers,
I was struggling to get this work but failed and now want to have your advice for this bug. What the problem is I use the ‘update’ method from the ‘SQLiteDabase’ library and it does NOT ONLY work on the actual device.
The weird thing is it has no problem on the eclipse android emulator but only on actual devices. If anyone knows how to figure this out or have an advice, would you please help me? I really appreciate your any help for this question. Below codes are my method and error messages.
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);
}
[Error message LOG]
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)
I found the solution. It was a sort of Android itself problem so I simply changed the ‘update’ method to ‘execSQL’ in order to update it manually with a SQL command ‘UPDATE’.