2011-06-05 76 views
1

我的一些用户报告说,他们无法正确打开在Android中使用sqlite jdbc或其他工具如sqlite浏览器(http:///sourceforge.net/projects/sqlitebrowser/)。无法打开在Android中创建的SQLite数据库(文件被加密或不是数据库)

下面是一个例子数据库的问题:

http://pocket-for-android.1047292.n5.nabble.com/Desktop-Version-Screenshots-Work-In-Progress-tp4383220p4456017.html

该源码分贝物上的HTC感觉创建的,运行Android 2.3.3和Sense 3.0。

确切的问题是,如果您在文本编辑器中查看文件,您可以看到一堆正在创建的表,但是如果尝试运行“select * from groups;”您将得到一个SQLException:文件被加密或不是数据库。

我试过使用“select sqlite_version;”看看它是否是一个版本问题 - sqlite浏览器说3.6.18.但不同的工具给我不同的版本号......不知道这是怎么回事。

我还应该指出,我的应用程序直接从设备(/data/data/com.citc.wallet/databases/wallet.db)将数据库复制到Dropbox上。

任何帮助将非常感激。

+0

db在我的PC上使用SQLiteSpy打开罚款。对不起,我知道这对你没有真正的帮助,但我只是想我会提到它。 – Squonk 2011-06-05 13:19:20

+0

是的 - 我刚刚找到一个工具或两个也可以打开数据库。我最好的猜测是它对于sqlite jdbc来说太新了一种格式(http://www.zentus.com/sqlitejdbc/) – timothyjc 2011-06-05 13:26:10

+1

一个想法可能是新的db使用WAL模式。尝试使用工作的系统执行'PRAGMA journal_mode = delete'并重试访问。 – schlenk 2011-06-05 13:52:26

回答

0

解决方法是,zentus项目不能使用最新版本的SQLite。

幸好有人保持叉此处维护:http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC

我所要做的就是更换与xerial一个罐子和它的所有工作。 Xerial sqlite jdbc在我看来是连接到Java的SQLite的最佳方式(我尝试了几个库)。

-1

我也遇到同样的问题。 但是,一旦我改变了它解决的数据库名称。 所以,只需通过创建新的数据库来尝试它

+0

这个问题在2年前被回答和接受。 – 2013-08-22 11:39:45

相关问题