2015-10-07 17 views
4

我已經將資產中的db文件複製到應用程序數據庫,並且已成功複製。當我在任何表上查詢時,它不返回這樣的表異常。我從該手機獲取數據庫文件,並且它具有所有必需的表格。 我知道這有點奇怪,但是這個錯誤只在OnePlusTwo設備上出現。 所以我的問題是這是一個設備的具體問題或其他人面臨的一般問題。 如果有人在任何其他電話上遇到此問題或知道如何解決此問題,請務必提及。 我沒有發佈任何代碼,因爲它只在一個設備上,但如果有人需要提及,我會發布該部分Sqlite沒有返回這樣的表,但在OnePlusTwo設備上獲取時存在表格

+0

我面臨同樣的問題。 –

+1

儘管我不知道你的問題的答案,但我只想補充一點:OnePlus只會出現其他一些奇怪的問題,例如無法控制鍵盤上的「Enter」按鈕的作用在EditText中。 – nbokmans

+0

這就是我想確認的是,這是任何類型的設備特定問題,或者我必須爲此問題做一些特殊的事情。不管怎麼說謝謝:) –

回答

6

我通過在複製數據庫之前放置一行代碼來解決此問題。問題是當你創建數據庫時,需要先關閉數據庫,然後再打開數據庫。這個問題並不在許多設備上,因爲現在所有設備都處理這些情況,但像OnePlusTwo這樣的設備在這方面出現了錯誤。 所以,以下是你只需要複製數據庫之前添加一行:

getReadableDatabase().close(); 

這將首先關閉連接,然後打開一個輸出流中創建的數據庫上。 如果有人需要一些額外的代碼,我可以發佈一個示例代碼。如果這不能解決問題,請發佈您的數據庫複製代碼。

謝謝:)

+0

請問您能否詳細說明一些更多的代碼,因爲我也會得到同樣的錯誤,請 – 2015-10-20 10:28:03

+0

已經在其他設備上測試了這個修復程序,結果是,它在所有其他設備上照常運行,現在它在OnePlus上甚至沒有麻煩。 – Darpan

+1

@RahulSharma您只需關閉您在將資產數據庫複製到應用程序數據庫之前所進行的數據庫訪問。該過程首先是在首次啓動應用程序時以及在複製數據庫之後創建數據庫。在開始複製過程並關閉該數據庫實例之前,您只需獲得對數據庫的可讀訪問權限即可。 –