Android SQLite错误代码21
我在模拟器的日志文件中发现了以下错误,我不知道该怎么办,因为谷歌搜索什么也找不到Android SQLite错误代码21,android,sqlite,Android,Sqlite,我在模拟器的日志文件中发现了以下错误,我不知道该怎么办,因为谷歌搜索什么也找不到 03-12 12:53:28.782: INFO/Database(688): sqlite returned: error code = 21, msg = misuse detected by source line 95716 03-12 12:53:28.812: ERROR/Database(688): sqlite_config failed error_code = 21. THIS SH
03-12 12:53:28.782: INFO/Database(688): sqlite returned: error code = 21,
msg = misuse detected by source line 95716
03-12 12:53:28.812: ERROR/Database(688): sqlite_config failed error_code = 21.
THIS SHOULD NEVER occur.
我发现
#define SQLITE_MISUSE 21 /* Library used incorrectly */
在公园里
如果一个或多个
使用SQLite API例程的
不对。不正确的例子
用法包括调用sqlite_exec
在数据库关闭之后
使用sqlite\u关闭或调用
具有相同数据库的sqlite_exec
指针同时从两个
分开的线程
我猜这意味着您的代码在第95716行附近错误地调用了接口库
稍后强>
OP确认实际问题涉及两个线程同时访问数据库,一个试图写入数据库,另一个试图关闭数据库。我由此推断,令人不快的代码行95716在模拟器中。(因为OP的代码库只有1000行或更少。)不过就是这样。没有第95716行,因为我的代码库只有1000行。但您的评论为我指明了正确的方向,因为我确实有一些线程在处理数据库,但它们各自处理自己的连接,因此我必须更仔细地研究一下code.Hmmm。它可能是指模拟器源代码中的第95716行吗?你能切换到另一个模拟器来测试这个想法吗?我选择在关闭数据库时使用锁,这样两个调用就不会争用打开和关闭数据库。我认为这会解决未来的任何问题。如果这行得通,你应该写下来作为答案,Catcall:你给我指出了正确的方向,所以我不介意你接受我的评论并补充你的答案,这样其他人就可以被引导到正确的问题领域,以及解决问题的可能提示,因为你值得表扬,而不是我。