2011-12-15 1 views
5

Je reçois l'erreur suivante:"SQLiteDiskIOException: code d'erreur 10: E/S disque erreur" sur ICS et retour précis ou chiffré Samsung Nexus sur DROP TABLE

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) 

Je reçois que cette erreur sur ICS 4.0.1 sur un téléphone Samsung Nexus. Sur un émulateur, un Motorola Xoom 3.2 et un HTC Desire 2.3.3, le code fonctionne bien. Mon code cible la version 8 ou 2.2.x du SDK. Le execSQL est exécuté comme suit:

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

La base de données est stockée en interne et non sur une carte SD. Des suggestions sur la façon de résoudre ce problème?

Répondre

6

Résolu ceci. Le problème était que, avant les instructions de la table de dépôt, il y avait une instruction Context.deleteDatabase('dbName') qui avait évidemment supprimé la base de données, et l'erreur d'E/S signalée prend tout son sens.

Il semble qu'une approche par ceinture et bretelles ait été utilisée auparavant (inutilement).

Cependant, la chose intéressante est que cela ne s'est pas manifesté comme un problème avant le passage à ICS.

+1

Ran dans la même erreur. Merci d'avoir répondu. J'apprécie vraiment cela. –

Questions connexes