Androidアプリの開発にて以下のようなエラーメッセージが発生することがあります。これはFindViewByIDが使いやすくなったことにより発生しやすくなったようです。
エラーメッセージ 例
1 |
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.ListView |
原因
FindViewByIDで見つかった部品の型と、実際にインスタンスを受けているデータ型が異なる。
対策
プログラムソースの中でFindViewByIDを使用している所を確認し、ほんとうに型があっているのかを確認する。サンプルのエラーメッセージの場合だと、ListViewにキャストしようとしているが、本体はLinearLayoutであると警告している。
また、何のことかわからずにAlt+Enterで解決しようとした場合に、
1 |
@SuppressLint("WrongViewCast") |
というアノテーションが付いている可能性があるので要注意。