实施数据绑定后更改程序包名称

实施数据绑定后更改程序包名称

问题描述:

我将数据绑定用于我的一个项目,项目名称为 com.abc.def .我已经将所有视图与

I'm using Databinding with one of my project with project name com.abc.def. I've related all my views with binding like

ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);

它工作正常,但是如果我将软件包名称更改为 com.Abc.Def ,则在构建Apk时会产生以下错误.

it worked fine but if I change my package name to com.Abc.Def it generated following error at the time of building Apk.

原因:无法猜测 com.Abc.Def.databinding.ActivityLoginBindingImpl.

Cause: couldn't make a guess for com.Abc.Def.databinding.ActivityLoginBindingImpl .

请注意:

  1. 我在Playstore上的com.Abc.Def版本较旧,并且正在更新版本.这就是为什么我必须更改程序包名称.
  2. 我无法从整个项目中删除数据绑定,因为它与所有视图相关.
  3. 如果我将包裹名称更改为旧的包裹,则可以正常工作.

我已经尝试过清理,重建并使缓存无效并重新启动.但是没有运气.

I have already tried clean , rebuild and invalidate cache and restart .but no luck.

我只是遇到了同样的问题.我可以通过切换Build.gradle(模块)中的databinding.enabled来修复它..以下是一些逐步指南,在重命名公司软件包(com. abc .myapp-> com. xyz .myapp)之后,我进行了逐步操作数据绑定可以按预期工作:

I just bumped into the same issue. I was able to fix it by toggling databinding.enabled inside Build.gradle (Module). Below is a little step-by-step guide, that I went through after renaming my company package (com.abc.myapp -> com.xyz.myapp), which got databinding to work as expected:

  1. 构建>清理项目
  2. 转到您的 Build.gradle(模块)禁用数据绑定:

android { dataBinding { enabled = false } }

android { dataBinding { enabled = false } }

文件>使用Gradle文件同步项目

现在再次启用数据绑定:

android { dataBinding { enabled = true } }

android { dataBinding { enabled = true } }

文件>使用Gradle文件同步项目

Build>重建项目


注意:这里的某些步骤可能是不必要的,但是在项目设置过程中进行一点额外的健全性检查永远不会造成任何危害,对吧!


Note: Some steps here may be unnecessary, but a little extra sanity checking has never done any harm during project setup, right!?