«SQLiteDiskIOException: код ошибки 10: ошибка ввода-вывода диска» повторно запускается на ICS и Samsung Nexus на DROP TABLE - PullRequest
6 голосов
/ 15 декабря 2011

Я получаю следующую ошибку:

android.database.sqlite.SQLiteDiskIOException: error code 10: disk I/O error
    at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
    at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:92)
    at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1926)
    at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1866)

Я получаю эту ошибку только на ICS 4.0.1 на телефоне Samsung Nexus. На эмуляторе, Motorola Xoom 3.2 и HTC Desire 2.3.3 код работает нормально. Мой код предназначен для версии 8, или 2.2.x, SDK. execSQL выполняется следующим образом:

db.execSQL("DROP TABLE IF EXISTS " + table.getTableName());

База данных хранится внутри, а не на SD-карте. Любые предложения о том, как решить эту проблему?

1 Ответ

6 голосов
/ 15 декабря 2011

Решено это.

Проблема заключалась в том, что до операторов удаления таблицы существовал оператор Context.deleteDatabase('dbName'), который, очевидно, удалил базу данных, и сообщаемая тогда ошибка ввода-вывода имеет смысл.

Похоже, что использование ремня и брекетов использовалось ранее (без необходимости).

Однако интересно то, что это не проявилось как проблема до перехода на ICS.

...