当ObservableArrayMap传递给包含的布局时,会出现编译错误:
错误:任务':app:compileDebugJavaWithJavac'执行失败。
java.lang.RuntimeException:发现数据绑定错误。 **** /数据绑定错误**** msg:找不到ObservableArrayMap的类型元素 文件:d:.... \布局\ activity_home.xml 当前:35:54-35:56 **** \数据绑定错误****
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.databinding.ObservableArrayMap"/>
<variable name="map" type="ObservableArrayMap<String, String>"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/name"
bind:map="@{map}"/>
<include layout="@layout/contact"
bind:map="@{map}"/>
</LinearLayout>
</layout>
看起来编译器没有识别ObservableArrayMap类型。是否还有其他语法来添加我缺少的类型?
答案 0 :(得分:0)
这对我有用:
SHELL
请注意,IDE会为变量显示红色,但无论如何它都会编译并运行。
- 编辑 -
Android Studio中有一个与2.3 canary 3相关的错误与<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<import type="android.databinding.ObservableArrayMap" />
<variable
name="map"
type="ObservableArrayMap<String, String>" />
</data>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{map.text}"
app:layout_constraintBottom_toBottomOf="@+id/activity_main"
app:layout_constraintLeft_toLeftOf="@+id/activity_main"
app:layout_constraintRight_toRightOf="@+id/activity_main"
app:layout_constraintTop_toTopOf="@+id/activity_main" />
</android.support.constraint.ConstraintLayout>
</layout>
相关。您可以解决此问题,直到通过在包含的布局中使用非泛型变量在以后的版本中修复它。这是我的包含布局:
ObservableArrayMap
感谢您找到这个!