【问题标题】:Unknown class: java.lang.String in AndroidX two-way data binding未知类:AndroidX 双向数据绑定中的 java.lang.String
【发布时间】:2019-01-15 14:13:28
【问题描述】:

刚迁移到AndroidX,尝试构建时出现此错误: Unknown class: java.lang.String file://----/app/src/main/res/layout/my_fragment.xml Line:XXX

有问题的行是使用双向数据绑定的 EditText 的开头: android:text="@={viewModel.myString}"

myString 看起来像这样:

val myString = MutableLiveData<String>()

我有多个这样的实例;每个都涉及到带有LiveData&lt;String&gt; 的 EditText 中的双向数据绑定。

【问题讨论】:

  • 如果您刚刚迁移,请仔细检查 dataBinding 版本是否是最新的。
  • @shkschneider 用的不是和Android Gradle Plugin一样的版本吗?
  • 通常放“dataBinding { enabled = true }`就足够了,只是我过去遇到了问题,不得不清理,同步gradle,重新启动ide,重建修复 - 你知道,奇怪的情况。
  • 我在使用自定义 BindingAdapter 时遇到了类似的问题。我正在使用 AndroidX 1.0.0-rc02。我通过将 Java 用于 BindingAdapter 解决了这个问题。这不是最好的解决方案。我填写了一个错误报告:issuetracker.google.com/u/1/issues/114838820
  • 我遇到了同样的问题。你解决了这个/怎么解决的?

标签: android kotlin android-xml android-databinding androidx


【解决方案1】:

对于那些在数据绑定 v3.4.0 中遇到此问题的人,临时回滚到 3.3.2 为我解决了这个问题。我在此期间发布了an issue about this on their tracker

要回滚,您只需相应地更改您的build.gradle

android {
    ...
        dataBinding {
            enabled = true
            version = '3.3.2'
        }
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多