- Android
- 2012-04-06 - 更新:2012-04-13
SQLiteデータベースを扱うアプリをAndroid3.2搭載の端末に入れていてエラーが発生した。
詳細は省略しますが、以下のようなエラーが出ます。
RuntimeException: Unable to resume activity
IllegalStateException: trying to requery an already closed cursor
クエリを実行しようとしたが、カーソルが閉じているとエラーが出ています。
どうやらカーソルマネージャー機能がなくなったよう。
というわけで、マネージャーを使うのをやめ、クローズ処理をアクティビティのonDestroy()に集約。
これでエラーは解消された。
Android2.2、2.3では正常に動作するので、バージョン違いの互換性による問題のようです。
代わりのメソッドが用意されている場合もあるので、Reflectクラスを利用すれば互換性を持たせることは可能なようです。