我正在尝试按照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的属性的设置器。
答案 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时的常见需求。希望他们能够及时解决此问题。