SQLite& Android:无法打开数据库文件 - 错误14

时间:2014-02-09 16:38:36

标签: android database sqlite

我看到很多次报道过类似的问题。就我而言,我直接使用我自己的JNI库(不是Android Java层)调用的“C”API,以及最新的合并3.8.3。所以我控制着我正在处理的事情。 然后,在某些操作(UPDATE)上,我收到一条错误,指出它无法打开数据库文件。我没有使用INSERT语句,只有UPDATE。 当我激活SQLite错误回调时,我看到以下内容:

  

无法打开[6c643e45c2] os_unix.c第29299行的文件:29299:(13)   open(./ etilqs_1zMsiYdpXhd3JqY) - 语句在36处中止:[UPDATE   .....]

进一步深入研究,它似乎与日志文件有关。当我使用pragma将journal_mode设置为MEMORY时,问题就会消失。但是所有其他模式,如WAL或TRUNCATED都会导致相同的错误。

从eclipse调试代码时,我可以看到在执行INSERT时创建的-journal文件。然后在交易完成时删除。所以它告诉我它对目录(/ data / data //)

有足够的权限

请注意,完全相同的代码在Windows上完美运行(C& Java),我没有收到错误。 Android和文件访问肯定会发生一些事情。

我有办法系统地重现错误。如果有人对我应该检查的内容有所了解,那么我很乐意进行一些实验并报告结果。

1 个答案:

答案 0 :(得分:2)

太迟回答..

我在使用多线程时看到同样的问题。

在第一个查询中发送下一个语句查询。

  

PRAGMA temp_store_directory ='一些可写路径'

SQLITE3文档说“已弃用”,但是......这对我有用..

真的被弃用吗?

祝你好运..

PS。我的sqlite3版本是[sqlite-amalgamation-3100200]