我想在我的Android應用程序中使用SQLite數據庫。它曾經工作過(我發誓我沒有改變任何東西),並且顯然有些改變,因爲我的代碼在查詢數據庫時不會返回任何東西。當我單步通過代碼本身時,我發現只要我的DBHelper調用了this.getReadableDatabase()
,數據庫就有一個mStackTrace
DatabaseObjectNotClosedException,儘管這是我第一次在應用程序中打開數據庫。奇怪的是,這個錯誤實際上並沒有引發,它可能不是我的問題,但我認爲這是一個很好的開始。getReadableDatabase上的Android DatabaseObjectNotClosedException
代碼:
{}剪斷
我不是100%究竟是怎麼回事。該類應該將數據庫從res/assets複製到本地數據文件夾,它似乎可以工作,但數據庫不正確,或者最終被指向錯誤的東西,因爲沒有行會返回。思考?
編輯:額外更新;我查看了存儲文件的數據/目錄,並找到了兩個單獨的數據庫,一個在files/
,另一個在databases/
。 files/
擁有正確的數據庫,並保留所有數據,databases/
只是一個空白的android數據庫設置。我的代碼應該在files/
中調用數據庫,但也許它不是?
編輯:已解決。我發現了這個問題,和我的DBhelper無關。顯然,我在這個項目上的隊列編輯了一個他不應該進行測試的領域,並且忘記將其改回來。原來,我所做的SQL調用有問題。 感謝您的幫助!
對於它的價值,我在過去的READ_ONLY標誌和供應商必須經歷的所謂的兼容性程序方面遇到了問題。嘗試刪除並重新運行你的東西。在打開數據庫時,它曾經讓我失敗,出現訪問衝突,然後從未關閉數據庫,並且讓我的應用程序在火中燃燒。 –
爲了澄清我的最後一個聲明,供應商在其中一個電話中使用的sqlite版本,始終在db上打開一個事務,即使是在Read_only模式下,導致產生的行爲......被吸引。 –
@GregGiacovelli它沒有解決這個問題,但它可能已經發現了一個更深的問題 - 我現在得到一個'sqlite_open_c2失敗'錯誤,儘管它似乎沒有影響任何東西。 –