我将Databinding 与我的项目名称之一com.abc.def 一起使用。我已将我所有的观点与绑定(bind)联系起来,例如
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
它工作正常,但如果我将包名称更改为 com.Abc.Def,它会在构建 Apk 时生成以下错误。
Cause: couldn't make a guess for com.Abc.Def.databinding.ActivityLoginBindingImpl .
请注意:
- 我在 playstore 上有一个带有 com.Abc.Def 的旧版本已经上线,我正在更新版本。这就是为什么我必须更改包名称。
- 我无法从整个项目中删除数据绑定(bind)。因为它与所有 View 相关。
- 如果我将我的包名称更改为旧名称,它可以正常工作。
我已经尝试过清理、重建和使缓存无效并重新启动。但没有成功。
最佳答案
我刚遇到同样的问题。我能够通过在 Build.gradle(模块)中切换 databinding.enabled 来修复它。下面是一个循序渐进的小指南,我在重命名公司包 (com.abc.myapp -> com.xyz.myapp) 后完成的,它让数据绑定(bind)按预期工作:
- 构建 > 清理项目
转到您的 Build.gradle(模块) 并禁用数据绑定(bind):
安卓{ 数据绑定(bind){ 启用=假 } }
文件 > 将项目与 Gradle 文件同步
- Build > Rebuild Project(不足为奇:您会收到大量错误消息)
现在再次启用数据绑定(bind):
安卓{ 数据绑定(bind){ 启用 = 真 } }
文件 > 将项目与 Gradle 文件同步
构建 > 重建项目
注意:这里的一些步骤可能是不必要的,但是在项目设置过程中进行一些额外的健全性检查从来没有造成任何伤害,对吧!?
关于android - 执行数据绑定(bind)后更改包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51262888/