关于android:无法解析androidx.databinding

Can't resolve androidx.databinding

我正在按照官方文档尝试将我的应用迁移到AndroidX。
我运行重构选项:迁移到AndroidX。

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

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

1
import android.databinding.**

来自

1
import androidx.databinding.**

但我收到错误消息

cannot resolve androidx.databinding.

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

我尝试通过回退

回到旧的databinding

1
import android.databinding.**

而不是androidx一个,但是我在xml布局中使用时出现一个错误,说

cannot find the setter for attribute with parameter type androidx.lifecycle.MutableLiveData.


在gradle中的以下代码中编写

1
2
3
4
5
6
android {
...
dataBinding {
    enabled = true
}
}

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

你可以做什么

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

我在@this答案中解释得很好。


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

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


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

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