2012-01-25 147 views
2

我想從由Android Activity或Service創建/更新的JS端讀取sqlite數據庫。無法從JavaScript打開sqlite數據庫

但是,當我調用window.openDatabase()方法下面的消息出現在LogCat上,並且查詢返回'沒有這樣的表'錯誤。

物理.db文件存在,似乎可以從Java代碼訪問,但不能從 訪問JavaScript代碼。卸載或清除數據並重新安裝應用程序沒有幫助。

我無法解決這個錯誤,請幫助&任何建議,非常感激。

PhoneGap的sqlite的錯誤碼= 14 I /數據庫(2138):sqlite的返回:錯誤碼= 14,味精=可以在線路無法打開文件27205

回答

2

如果您嘗試訪問該數據庫從Javascript代碼創建活動,下面的線程可能會回答你的問題:

How do I call window.openDatabase from a webView hosted in an android application?

+0

謝謝,我可以從openDatabase()獲取數據庫對象併發送查詢給它,但返回'沒有這樣的表'錯誤。奇怪的:( –

+1

我注意到Activity在/data/data/package.name/databases創建.db,但是WebSettings#getDatabasePath()返回/data/data/package.name/app_database;( –

+0

不同於引用db目錄是OK (只需要通過Java/JS接口獲取結果),但奇怪的是一旦它成功之前,但重新安裝應用程序後,它只是沒有工作。 –

0

在這裏,我假設您正在使用的PhoneGap /科爾多瓦android應用工作。

我也遇到過同樣的問題,但是我發現這個問題的出現是因爲Java和JS都在不同的地方創建了數據庫。所以爲了解決這個問題,使用這個plugin來訪問android中由android創建的數據庫。這個插件訪問來自Java創建它的數據庫。