数据绑定错误:只允许一个布局元素和一个数据元素.

RMK*_*RMK 30 data-binding android

我在使用数据绑定和包含标签时遇到以下错误:

Error:Execution failed for task ':app:dataBindingProcessLayoutsBetaDebug'.>data binding error msg:Only one layout element and one data element are allowed. [path to file] has 3file:[path to file]****\ data binding error ****
Run Code Online (Sandbox Code Playgroud)

这是我的布局文件:

[...]

        <LinearLayout
            android:id="@+id/activity_description_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:orientation="vertical">

            <include
                android:id="@+id/activity_description_header_bottom"
                layout="@layout/activity_description_header_bottom" />

            <include
                android:id="@+id/activity_description_contact_info"
                layout="@layout/activity_description_contact_info" />

            <include
                android:id="@+id/activity_description_other_info_box"
                layout="@layout/activity_description_other_info_box" />

            <include
                android:id="@+id/activity_description_bottom_buttons"
                layout="@layout/activity_description_bottom_buttons" />
        </LinearLayout>
[...]
</layout>
Run Code Online (Sandbox Code Playgroud)

在每个包含的布局中,我有这样的东西:

<layout xmlns:android="http://schemas.android.com/apk/res/android">
[...]
</layout>
Run Code Online (Sandbox Code Playgroud)

从这个回复:Android数据绑定使用包含标签我想我的代码是正确的,为什么数据仓认为我在文件中使用多个单个标签?

RMK*_*RMK 68

我解决了我的问题.当布局标记中包含多个元素时,会出现此错误:

错误:

<layout>
     <data>
          ...
     </data>
     <LinearLayout>
          ...
     </LinearLayout>
     <LinearLayout>
          ...
     </LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

正确:

<layout>
     <data>
          ...
     </data>
     <LinearLayout>
         <LinearLayout>
              ...
         </LinearLayout>
         <LinearLayout>
              ...
         </LinearLayout>
     </LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)