そういうことです。少しだけ詰まったのでメモ。Databindingを導入した段階だとそもそもなんか他の所が間違っているんでは無かろうかと疑った末の単なるスペルミス。AndroidStudioはバインディング式を含むレイアウトxmlを編集している最中に、バインディング式の中身のスペルミスなどをチェックしてくれません。正確にはAndroudStudioではなくLintか。知らんけど。とにかくタイピング入力して何もLint出ないからと思ってビルドすると、、、

msg:Identifiers must have user defined types from the XML file. xxxxx is missing it

これが出たらxxxxxの部分がスペルミスです。以上。

具体例

一応示しておく。

<layout>
  <data>
    <variable name="viewmodel" type="com.hoge.android.app.ViewModel" />
  </data>
  ~~略~~
  <TextView

    android:text="@{viwemodel.text}" />
  ~~略~
</layout>

とするとmsg:Identifiers must have user defined types from the XML file. viwemodel is missing itとでます。ハイ。単なるスペルミスでした。申し訳ございませんでした。普通にスペルミスに気づけばいいんですけどね。見た目が似てると気づかないんですよ。ホント。

Previous Post Next Post