LoginSignup
1
1

More than 5 years have passed since last update.

LiveDataのDataBindingが失敗する

Posted at

現象

  • こうやろうとしたら
SampleViewModel.kt
class SampleViewModel: ViewModel() {
    val name = MutableLiveData<String>()
}
layout.xml
<android.support.v7.widget.AppCompatTextView
    android:id="@+id/text_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@{viewModel.name}" />
  • こんなエラーが出た
[kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.

言い訳

  • ここに書いてあるし

Android Studio release notes  |  Android Developers

Updates to data binding
This update includes several improvements for data binding:

You can now use a LiveData object as an observable field in data binding expressions. The ViewDataBinding class now includes a new setLifecycle() method that you use to observe LiveData objects.

出来るはずだ!

  • サンプルプロジェクト作って試したときも出来た!!

原因

  • com.android.tools.build:gradle が3.0系だった
  • 3.1以上にしよう
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.3'
}

→諸事情でアップデートできない。ObservableFieldに変える。

  • 導入したいプロジェクトでミニマム実装して試さなきゃ駄目だ。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1