Android SQLite код ошибки 21 - PullRequest
       2

Android SQLite код ошибки 21

4 голосов
/ 13 марта 2011

Я получил следующую ошибку в лог-файлах моего эмулятора, и я не знаю, что с этим делать, потому что поиск в Google ничего не дает.

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.

1 Ответ

8 голосов
/ 13 марта 2011

Я нашел

#define SQLITE_MISUSE      21   /* Library used incorrectly */

в документации по интерфейсу SQLite C / C ++ .

Эта ошибка может возникнуть, если одна или несколько подпрограмм SQLite API используются неправильно.Примеры неправильного использования включают вызов sqlite_exec после закрытия базы данных с использованием sqlite_close или вызов sqlite_exec с одним и тем же указателем базы данных одновременно из двух отдельных потоков.

Я думаю, это означает, что ваш код вызывает интерфейсбиблиотека неправильно в строке 95716.

Позже.,.

ОП подтвердил, что настоящая проблема заключалась в том, что два потока одновременно обращались к базе данных, один пытался записать в базу данных, а другой пытался закрыть ее.Из этого я могу сделать вывод, что в эмуляторе была нарушена строка кода 95716.(Поскольку в кодовой базе ОП было всего 1000 строк или меньше.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...