android数据绑定 - 找不到类android.view.data

时间:2016-06-11 10:15:57

标签: java android data-binding

我正在尝试在我的Android应用中实现数据绑定,但是我遇到了这个问题:

java.lang.ClassNotFoundException: Didn't find class "android.view.data"

我的布局文件如下所示:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.myapp.views.fragments.LocationSearchFragment">

        <!-- data setup -->
        <data>
            <variable name="location"
                type="com.myapp.models.Address" />
        </data>
    </LinearLayout>
</layout>

我使用以下行更新了我的build.gradle文件:

dataBinding {
    enabled = true
}

正如文档所示:https://developer.android.com/topic/libraries/data-binding/index.html。我正在运行最新版本的Android Studio。

2 个答案:

答案 0 :(得分:3)

您需要将data定义置于LinearLayout之外:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <!-- data setup -->
    <data>
        <variable name="location"
            type="com.myapp.models.Address" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.myapp.views.fragments.LocationSearchFragment">
    </LinearLayout>
</layout>

答案 1 :(得分:1)

数据绑定永远不会出现在<LinearLayout>中。您应该将它放在<layout>区域中,如下所示:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">


    <!-- data setup -->
    <data>
        <variable name="location"
            type="com.myapp.models.Address" />
    </data>
 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.myapp.views.fragments.LocationSearchFragment">

 </LinearLayout>
</layout>