1322903451 Android で自作した View を配置した XMLファイルを inflate すると android.view.InflateException が返されてしまいます。原因と思えるものがありましたら、ご教示いただけないでしょうか。


convertView = (MyView) layoutInflater.inflate(R.layout.main, parent, false);

①下記、サイトを参考にコピペでサンプルコード作成
Android GridView でアイコンと文字のレイアウト
http://y-anz-m.blogspot.com/2010/12/androidgridview.html

②自作の View MyView を作成

③item.xml の2行目を下記の通り変更
<LinearLayout
xmlns:android="http://schemas.andro...

<yanzm.example.gridviewsample.MyView
xmlns:android="http://schemas.andro...

④実行するとエラーではじかれる。
android.view.InflateException: Binary XML file line #2: Error inflating class yanzm.example.gridviewsample.MyView



なお、XMLで記載したViewの名前と定義したViewは、相違ない事は確認しております。

以上、何卒、よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2011/12/03 18:10:53
  • 終了:2011/12/03 20:02:39

回答(1件)

id:kodairabase No.1

kodairabase回答回数661ベストアンサー獲得回数802011/12/03 18:53:59

マルチスレッド下でLayoutInflater.inflateを行っていませんか?
Handerを介して処理するように変更してみてください。
http://blogs.yahoo.co.jp/hiro5_188/20237842.html

id:domodomodomo

すいません、自己解決しました。
ご対応いただき、ありがとうございます。

2011/12/03 20:01:16
  • id:domodomodomo
    【原因
    MyView クラスのコンストラクタを設定しわすれていました。

    【対策
    MyView(Context context, AttributeSet attrs)
    ※この引数だけを所持するコンストラクタを作成する必要がある。
     これ以外では、駄目。

    【理由】
    ①convertView = (MyView) layoutInflater.inflate(R.layout.main, parent, false);を実行して、
    ②XMLファイルに自身が定義したViewが存在した場合、
    ③下記のコンストラクションを参照しているようです。
     MyView(Context context, AttributeSet attrs)

    【参考】
    ①http://stackoverflow.com/questions/5436632/custom-android-component-is-crashing-application-on-inflate
    ②http://stackoverflow.com/questions/4483433/error-inflating-inner-class-view
     クラスはpublicにしておきましょう的な。

この質問への反応(ブックマークコメント)

トラックバック

  • 2016-05-27 07:10:59
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません