Android アプリで SQLite db を使用しようとしています。以前は機能していましたが (何も変更していないことを誓います)、明らかに何かが変更されました。これは、db のクエリ時にコードが何も返さなくなったためです。コード自体をステップ実行すると、DBHelperthis.getReadableDatabase()
がデータベースを呼び出すとすぐmStackTrace
に、アプリ自体でデータベースを開いたのは初めてであるにもかかわらず、DatabaseObjectNotClosedException が発生することに気付きました。不思議なことに、このエラーが実際にスローされることはなく、私の問題でさえないかもしれませんが、ここから始めるのが良いと思います。
コード:
{中略}
ここで何が起こっているのか、私は 100% ではありません。このクラスはデータベースを res/assets からローカル データ フォルダーにコピーすることになっており、動作しているように見えますが、行が返されないため、データベースが正しくないか、間違ったものを指すことになります。考え?
編集:追加の更新。ファイルを保存している data/ dir を調べたところ、 に 1 つと に 1 つの 2 つの別個のデータベースが見つかりましfiles/
たdatabases/
。files/
すべてのデータがそのままの正しいDBがあり、databases/
Android用の空のデータベース設定です。私のコードは でデータベースを呼び出すことになっていますがfiles/
、そうではないのでしょうか?
編集:解決しました。問題が見つかりましたが、DBhelper とは何の関係もありませんでした。どうやら、プロジェクトの私の同僚が、テスト用にすべきではないフィールドを編集し、元に戻すのを忘れていたようです。私が行っていたSQL呼び出しに問題があることが判明しました。助けてくれてありがとう!