閉じる

cannot generate view binders

データバインディングをいじっている時、こんなエラーに遭遇して少し悩んだ。

^gt; java.lang.RuntimeException: failure, see logs for details.
cannot generate view binders java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at android.databinding.tool.ext.ExtPackage$ext$3e67e227.androidId(ext.kt:81)
at android.databinding.tool.writer.WriterPackage$LayoutBinderWriter$aded6857$readableName$1.invoke(LayoutBinderWriter.kt:89)
at android.databinding.tool.writer.WriterPackage$LayoutBinderWriter$aded6857$readableName$1.invoke(LayoutBinderWriter.kt)
at android.databinding.tool.ext.LazyExt.get(ext.kt:32)
at android.databinding.tool.writer.WriterPackage$LayoutBinderWriter$aded6857.getReadableName(LayoutBinderWriter.kt)
at android.databinding.tool.writer.WriterPackage$LayoutBinderWriter$aded6857$fieldName$1.invoke(LayoutBinderWriter.kt:106)
at android.databinding.tool.writer.WriterPackage$LayoutBinderWriter$aded6857$fieldName$1.invoke(LayoutBinderWriter.kt)
at android.databinding.tool.ext.LazyExt.get(ext.kt:32)
at android.databinding.tool.writer.WriterPackage$LayoutBinderWriter$aded6857.getFieldName(LayoutBinderWriter.kt)
at android.databinding.tool.writer.WriterPackage.getFieldName(Unknown Source)
at android.databinding.tool.LayoutBinder$1.compare(LayoutBinder.java:49)
at android.databinding.tool.LayoutBinder$1.compare(LayoutBinder.java:46)

わかってみれば単純なことなんだけど、「android:text=”@{Item.hoge}”」と書くべき所を「android:id=”@{Item.hoge}”」と間違った結果。
最初からデータバインディングを使っていればはまることはないと思うけど、既存のプロジェクトにデータバインディングを導入する作業でやらかすとこうなる。

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)