2011-06-05 77 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

相關問題