私はを使用していSQLiteOpenHelper
ます。アプリケーションが正常に閉じられると、データベースもメソッドonDestroy()
で正常に閉じられます。強制的に閉じると、データベースは開いたままになり、後で、アプリケーションがを使用してデータベースを読み取ろうとするgetReadableDatabase()
と、次のメッセージが表示されてクラッシュしました。
09-26 13:45:30.995: ERROR/Database(12632): close() was never explicitly called on database
LogCatの全文は次のとおりです。
09-27 03:10:04.331: ERROR/Database(391): close() was never explicitly called on database '/data/data/myApplication/databases/DownloadDatabase1'
09-27 03:10:04.331: ERROR/Database(391): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
09-27 03:10:04.331: ERROR/Database(391): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1847)
09-27 03:10:04.331: ERROR/Database(391): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
09-27 03:10:04.331: ERROR/Database(391): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854)
09-27 03:10:04.331: ERROR/Database(391): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:847)
09-27 03:10:04.331: ERROR/Database(391): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:544)
09-27 03:10:04.331: ERROR/Database(391): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
09-27 03:10:04.331: ERROR/Database(391): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
09-27 03:10:04.331: ERROR/Database(391): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
スタックトレースをたどりましたが、例外は次のコード行が原因だと思います。
setLocale(Locale.getDefault());
上記のコードは、ファイルSQLiteDatabase.javaからのものです。この問題を解決する方法について何か提案はありますか?