android - 执行数据绑定(bind)后更改包名称

标签 android android-studio data-binding package

我将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 .

请注意:

  1. 我在 playstore 上有一个带有 com.Abc.Def 的旧版本已经上线,我正在更新版本。这就是为什么我必须更改包名称。
  2. 我无法从整个项目中删除数据绑定(bind)。因为它与所有 View 相关。
  3. 如果我将我的包名称更改为旧名称,它可以正常工作。

我已经尝试过清理、重建和使缓存无效并重新启动。但没有成功。

最佳答案

我刚遇到同样的问题。我能够通过在 Build.gradle(模块)中切换 databinding.enabled 来修复它。下面是一个循序渐进的小指南,我在重命名公司包 (com.abc.myapp -> com.xyz.myapp) 后完成的,它让数据绑定(bind)按预期工作:


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

    安卓{ 数据绑定(bind){ 启用=假 } }

  3. 文件 > 将项目与 Gradle 文件同步

  4. Build > Rebuild Project(不足为奇:您会收到大量错误消息)
  5. 现在再次启用数据绑定(bind):

    安卓{ 数据绑定(bind){ 启用 = 真 } }

  6. 文件 > 将项目与 Gradle 文件同步

  7. 构建 > 重建项目


注意:这里的一些步骤可能是不必要的,但是在项目设置过程中进行一些额外的健全性检查从来没有造成任何伤害,对吧!?

关于android - 执行数据绑定(bind)后更改包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51262888/

相关文章:

android - 如何为android SDK命令行工具设置环境变量

android - 哪个 build.gradle 文件 Android studio

c# - 如何在 WPF(MVVM/ Entity Framework )中更新表单时显示从数据库到 TextBlock 的外键数据值?

c# - 如何检测嵌套属性的变化?

android - 使用超过 3g 时未找到证书路径的信任 anchor ,但在 WiFi 上工作正常

java - Android cameraSource.stop() 导致应用程序卡住

android - Android 上没有滚动的 ListView

android - 将两个 NumberPicker View 与 onValueChanged 链接会导致不可预测的崩溃

Android Studio - 重新启用标记为不再显示的弹出窗口

javascript - 我怎样才能在 AngularJS Controller 中同时获得输入字段的前后值?