我開發了一個應用程序,它可以訪問設備中的數據庫;但是,我不知道現在不能查看在數據庫中執行這樣的代碼行:CREATE TABLE android_metadata失敗
this.productoHelper.getWritableDatabase();
這是我的異常堆棧跟蹤:
01-16 19:20:04.629: E/Database(17236): CREATE TABLE android_metadata failed
01-16 19:20:04.639: E/Database(17236): Failed to setLocale() when constructing, closing the database
01-16 19:20:04.639: E/Database(17236): android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1987)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1855)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:847)
01-16 19:20:04.639: E/Database(17236): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:550)
01-16 19:20:04.639: E/Database(17236): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
01-16 19:20:04.639: E/Database(17236): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
順便說一句!當我嘗試從Eclipse Emulator執行此操作時,它運行正常,但不在設備中。
你的應用程序創建數據庫,或運送預製一個與應用? – 2012-01-16 18:55:36
嘗試使用adb來卸載並重新安裝。我在安裝應用程序的更高版本時遇到了舊文件遺留問題,從未更新的問題。 – JustinDanielson 2012-01-16 19:05:06
我認爲助手類的onCreate被稱爲recursivly(getWritableDatabase從的onCreate(幫手)以某種方式調用),但我只能猜測 – Selvin 2012-01-16 19:13:02