我正在尝试在我的 android 应用程序中使用 SQLite 数据库。它曾经可以工作(我发誓我没有改变任何东西),并且显然发生了一些变化,因为我的代码现在在查询数据库时没有返回任何内容。当我单步执行代码本身时,我注意到只要我的 DBHelper 调用this.getReadableDatabase()
数据库就有一个mStackTrace
DatabaseObjectNotClosedException,即使这是我第一次在应用程序本身中打开数据库。奇怪的是,这个错误实际上从未被抛出,甚至可能不是我的问题,但我认为这是一个很好的起点。
代码:
{snip}
我不是 100% 知道这里到底发生了什么。该类应该将数据库从 res/assets 复制到本地数据文件夹,它似乎可以工作,但数据库要么不正确,要么最终被指向错误的东西,因为没有返回任何行。想法?
编辑:附加更新;我查看了存储文件的 data/ 目录,发现了两个独立的数据库,一个files/
在databases/
. files/
具有所有数据完整的正确数据库,并且databases/
只是 android 的空白数据库设置。我的代码应该调用数据库files/
,但也许不是?
编辑:已解决。我发现了问题,它与我的 DBhelper 无关。显然,我在该项目中的团队编辑了一个他不应该用于测试的字段,却忘记了将其改回来。原来我正在做的 SQL 调用是错误的。谢谢您的帮助!