2011-12-15 29 views
5

Tôi nhận được lỗi sau:retuns trên ICS và Samsung Nexus trên 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) 

tôi chỉ nhận được lỗi này trên ICS 4.0.1 trên điện thoại Samsung Nexus. Trên một trình giả lập, Motorola Xoom 3.2 và HTC Desire 2.3.3, mã hoạt động tốt. Mã của tôi được nhắm mục tiêu tại phiên bản 8 hoặc 2.2.x của SDK. execSQL được thực hiện như sau:

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

Cơ sở dữ liệu được lưu trữ nội bộ chứ không phải trên thẻ SD. Bất kỳ đề xuất nào về cách giải quyết vấn đề này?

Trả lời

6

Giải quyết vấn đề này.

Vấn đề là trước khi bảng kê khai thả có tuyên bố Context.deleteDatabase('dbName') rõ ràng đã xóa db và lỗi I/O được báo cáo sau đó có ý nghĩa hoàn hảo.

Dường như một phương pháp thắt lưng và niềng răng đã được sử dụng trước đó (không cần thiết).

Tuy nhiên, điều thú vị là điều này không thể hiện sự cố cho đến khi chuyển sang ICS.

+1

Đã xảy ra lỗi tương tự. Cảm ơn câu trả lời. Tôi rất trân trọng điều này. –

Các vấn đề liên quan