我在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是同一个对象,每次都是。
答案 0 :(得分:1)
这不是一个真正的错误,只是在SQLiteDatabase
终结器中记录了错误日志级别的嘈杂日志消息。它包含一个异常堆栈跟踪,是的,但它只记录数据库的打开位置。 Source
有可能您仍然没有关闭某些与数据库相关的对象(游标,数据库实例等)。
您也可以安全地忽略该消息。
顺便说一下,4.1果冻豆中删除了这条消息。