0

这个无用的错误信息最近让我发疯了;它不会发生在 android 模拟器中,仅当通过 USB 调试在我的(android 2.3.6)设备上运行时,从 Eclipse 启动。

实际上没有抛出异常,据我所知,我的数据库查询实际上都没有失败(一切似乎都正常工作),但是对于我运行的每个查询,我至少收到一个这些错误。

据我所知,我做的一切都是正确的:

  • 我正在使用一个SQLiteOpenHelper作为单例创建的实例(同步静态方法使用应用程序的上下文检索单个实例)。
  • 我只getWritableDatabase()在需要运行 等时update调用insert,其余时间使用getReadableDatabase().
  • 所有涉及可写数据库的操作也都包装在事务中,并带有一个try/catch/finally块以确保endTransaction()被调用。
  • 所有其他查询都包装在一个try/catch块中以捕获任何可能的SQLException响应,这些响应会被适当地记录下来。
  • 我正在调用我正在使用的close()所有对象。SQLiteDatabaseCursor

其中大部分是用来在模拟器中引发背景错误的东西,直到我纠正它们,当我在模拟器中运行我的应用程序时,我再也看不到任何类型的数据库错误。然而,在我的设备上运行时,对于我运行的每一个查询,我似乎都会收到无用的“这永远不会发生”错误,但没有明显的不良影响。

当然我只是暂时忽略了这些,但我想不出其他可能的原因。我的 SQL 语句都是有效的,而且我的大部分代码都是基于官方的 android 教程,比如这里的一个。

谁能确定我为什么会收到这些错误?还有哪些其他可能的原因?

4

2 回答 2

0

This happens due to incorrect usage of SQLite Api according to https://stackoverflow.com/a/5285486/1438915

This answer may help you in solving your problem.

check SQLite

于 2013-09-06T14:17:10.850 回答
0

我记得当您尝试访问已关闭的 sqlite 数据库时发生此错误。当多个线程同时访问数据库并且其中一个线程称为关闭时,可能会发生此错误。我只是通过根本不关闭 sqlite db 解决了这个问题。希望这可以帮助。

于 2013-11-13T04:11:43.603 回答