找不到属性'android:text'的getter,值类型为java.lang.String,返回null

时间:2018-01-10 18:55:33

标签: java android android-studio data-binding two-way-binding

我刚从我的一个项目的2.3版本更新了AndroidStudio到3.0.1。当我尝试构建项目时,AndroidStudio现在抱怨数据绑定问题。我正在使用gradle类路径的alpha版本

com.android.tools.build:gradle:3.1.0-alpha07

Error:(67, 17) Cannot find the getter for attribute 'android:text' with value type java.lang.String on null. 

它抱怨的行使用与EditText的双向数据绑定。

<android.support.design.widget.TextInputEditText
                android:id="@+id/groupNumber"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/text_hint"
                android:imeOptions="actionNext"
                android:maxLength="@{viewModel.maxLength}"
                android:maxLines="1"
                android:text="@={viewModel.title}"
                android:textColor="@color/red"
                app:filter="@{viewModel.inputType}"/>

viewModel是parent(BaseViewModel)扩展BaseObservable的类的实例。

请注意,它之前工作正常,当我更新 AndroidStudio 时它停止工作。我尝试了清理/构建无效/重新启动选项,没有运气。我真的很感激任何关于我缺少的指示。

3 个答案:

答案 0 :(得分:1)

对于我的案例,有不止一个问题。我的应用程序使用了许多驻留在不同repo上的库模块。所以我更新了每个模块以使用相同的gradle版本(我使用3.1.0)。 然后我还更新了数据绑定库版本。 dataBinding { enabled = true version '2.3.3' } 希望它能帮助别人。

答案 1 :(得分:0)

我遇到了同样的问题,花了好几个小时试图找到与spinner的绑定和反绑定相关的代码有什么问题。

将Android Studio升级到3.0.1并升级Gradle后,编译错误消失了。

答案 2 :(得分:-1)

我对数据绑定3.1.0-alpha07 / Android Studio 3.1 Canary 7也有同样的问题 我也尝试过清洁/重启。我试图降级到3.1.0-alpha06,没有任何效果。 临时工作的唯一解决方法是删除每个带错误的数据绑定行,编译,然后重新放置它们。