私は、デバイス内のデータベースにアクセスするアプリケーションを開発しました。しかし、私はこのようなコード行を実行して、データベースへのアクセスも今それをすることはできません知らない:CREATE TABLE android_metadata failed
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エミュレータからこれを実行しようとすると、デバイスではなく正常に実行されます。
あなたはアプリでデータベースを作成、またはアプリであらかじめ作られたものを出荷していますか? –
adbを使用してアンインストールしてから再インストールしてください。古いバージョンのファイルが残っていて、それ以降のバージョンのアプリケーションをインストールするときに更新されない問題がありました。 – JustinDanielson
私はヘルパークラスのonCreateが再帰的に呼ばれていると思います(getWritableDatabaseは(ヘルパーの)fromCreateから)何とか呼び出されますが、私は推測できるだけです – Selvin