这个无用的错误信息最近让我发疯了;它不会发生在 android 模拟器中,仅当通过 USB 调试在我的(android 2.3.6)设备上运行时,从 Eclipse 启动。
实际上没有抛出异常,据我所知,我的数据库查询实际上都没有失败(一切似乎都正常工作),但是对于我运行的每个查询,我至少收到一个这些错误。
据我所知,我做的一切都是正确的:
- 我正在使用一个
SQLiteOpenHelper
作为单例创建的实例(同步静态方法使用应用程序的上下文检索单个实例)。 - 我只
getWritableDatabase()
在需要运行 等时update
调用insert
,其余时间使用getReadableDatabase()
. - 所有涉及可写数据库的操作也都包装在事务中,并带有一个
try/catch/finally
块以确保endTransaction()
被调用。 - 所有其他查询都包装在一个
try/catch
块中以捕获任何可能的SQLException
响应,这些响应会被适当地记录下来。 - 我正在调用我正在使用的
close()
所有对象。SQLiteDatabase
Cursor
其中大部分是用来在模拟器中引发背景错误的东西,直到我纠正它们,当我在模拟器中运行我的应用程序时,我再也看不到任何类型的数据库错误。然而,在我的设备上运行时,对于我运行的每一个查询,我似乎都会收到无用的“这永远不会发生”错误,但没有明显的不良影响。
当然我只是暂时忽略了这些,但我想不出其他可能的原因。我的 SQL 语句都是有效的,而且我的大部分代码都是基于官方的 android 教程,比如这里的一个。
谁能确定我为什么会收到这些错误?还有哪些其他可能的原因?