カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Honeycomb Cursor関連のエラー

SQLiteデータベースを扱うアプリをAndroid3.2搭載の端末に入れていてエラーが発生した。
詳細は省略しますが、以下のようなエラーが出ます。
RuntimeException: Unable to resume activity
IllegalStateException: trying to requery an already closed cursor

クエリを実行しようとしたが、カーソルが閉じているとエラーが出ています。
どうやらカーソルマネージャー機能がなくなったよう。

というわけで、マネージャーを使うのをやめ、クローズ処理をアクティビティのonDestroy()に集約。
これでエラーは解消された。

Android2.2、2.3では正常に動作するので、バージョン違いの互換性による問題のようです。
代わりのメソッドが用意されている場合もあるので、Reflectクラスを利用すれば互換性を持たせることは可能なようです。

参考?
http://d.hatena.ne.jp/ukiki999/20100524/p1

1,884 views