[Android/エラー]Caused by: java.lang.ClassCastException: foo cannot be cast to bar

Androidアプリの開発にて以下のようなエラーメッセージが発生することがあります。これはFindViewByIDが使いやすくなったことにより発生しやすくなったようです。

エラーメッセージ 例

原因

FindViewByIDで見つかった部品の型と、実際にインスタンスを受けているデータ型が異なる。

対策

プログラムソースの中でFindViewByIDを使用している所を確認し、ほんとうに型があっているのかを確認する。サンプルのエラーメッセージの場合だと、ListViewにキャストしようとしているが、本体はLinearLayoutであると警告している。

 

また、何のことかわからずにAlt+Enterで解決しようとした場合に、

というアノテーションが付いている可能性があるので要注意。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です