Android sqlite close从未调用异常但它肯定是关闭的

时间:2014-01-23 00:38:29

标签: android android-sqlite

我在android中的单元测试中遇到错误:

01-23 00:13:45.430: E/Database(9907): close() was never explicitly called on database '/data/data/com.chucklepie.androidtest/databases/androidtest.db' 

然而,它正在倒下的那一行在getReadableDatabase中。怎么说它没有关闭?实际上,在我使用各种连接和数据库状态进行的所有测试中,在尝试关闭先前使用getWriteableDatabase打开的数据库,然后打开它可读之后,它总是会失败。

if (!db.isReadOnly()) {
    db.close();
    db = dbHelper.getReadableDatabase();
}

我知道如果一个可写的数据库被合并,你并不总能保证一个可读的数据库,但它应该不会出错吗?

dbHelper是同一个对象,每次都是。

1 个答案:

答案 0 :(得分:1)

这不是一个真正的错误,只是在SQLiteDatabase终结器中记录了错误日志级别的嘈杂日志消息。它包含一个异常堆栈跟踪,是的,但它只记录数据库的打开位置。 Source

有可能您仍然没有关闭某些与数据库相关的对象(游标,数据库实例等)。

您也可以安全地忽略该消息。

顺便说一下,4.1果冻豆中删除了这条消息。