无法解析androidx.databinding

时间:2018-10-11 10:46:22

标签: android android-databinding android-livedata androidx

我正在尝试按照official doc将应用迁移到AndroidX。 我运行重构选项:迁移到AndroidX

起初,我遇到了一些错误,这些问题已通过重新启动和清理项目得以解决。然后,我遇到了一个问题STRING_TOO_LARGE(参见此Stack Overflow question),通过将gradle构建工具降级到3.1.3解决了这个问题。

但是现在我正在努力进行数据绑定。迁移工具取代了我所有的

import android.databinding.**

通过

import androidx.databinding.**

但我收到错误消息

  

无法解析androidx.databinding。

要使它们正常工作,我需要做些什么吗?


我尝试通过退回

回到原来的databinding
import android.databinding.**

而不是androidx,但是我在xml布局中使用的LiveData出现了错误

  

找不到参数类型为androidx.lifecycle.MutableLiveData的属性的设置器。

4 个答案:

答案 0 :(得分:1)

Androidx.databinding是正确的软件包,对于以后的问题,您可以在此处查找映射:https://developer.android.com/jetpack/androidx/migrate#migrate

当切换已迁移和未迁移的分支或项目时,Android Studio似乎出现问题。目前,对我来说唯一可行的解​​决方法是清理gradle,然后重新启动android studio(在切换分支或迁移之后)

答案 1 :(得分:1)

在gradle中编写以下代码

android {
...
dataBinding {
    enabled = true
}
}

答案 2 :(得分:0)

数据绑定有一个很奇怪的问题,当您遇到一些语法错误或某些导入错误时,它将显示100个绑定错误,而不是实际错误。

你能做什么

打开每个xml文件,然后打开您工作的java文件,并查看是否存在未解决的导入或错误。 如果发现错误,请解决并构建项目,则数据绑定类仅在成功构建后生成。

我在@ this answer中解释得很好。

答案 3 :(得分:0)

迁移到AndroidX后,我遇到了类似的问题。对我来说,为活动设置contentView时出现错误,其余的数据绑定代码被认为可以。

最后,对我有用的是Invalidate Cache & Restart。可悲的是,这似乎是使用AndroidStudio时的常见需求。希望他们能够及时解决此问题。