【问题标题】:View binding error : Member Injector is defined multiple times查看绑定错误:Member Injector 被多次定义
【发布时间】:2020-12-10 09:23:03
【问题描述】:

我正在尝试将大型应用程序移动到视图绑定。我们在很多领域都在使用 dagger.android,所以我猜 View Binding 和 dagger 表现不佳。这是我得到的错误:


Type net.myapp.base.abstracts.vb.BaseFragmentVB_MembersInjector is defined multiple times:
Users/anshsachdeva/Desktop/android/myapp-android/feature/search/build/intermediates/runtime_library_classes_jar/stagingDebug/classes.jar:net/myapp/base/abstracts/vb/BaseFragmentVB_MembersInjector.class, /

Users/anshsachdeva/Desktop/android/myapp-android/feature/flashcard/build/intermediates/runtime_library_classes_jar/stagingDebug/classes.jar:net/myapp/base/abstracts/vb/BaseFragmentVB_MembersInjector.class

一些上下文: 该应用程序使用经典的干净架构,其中所有子活动、片段等都从基类扩展。该项目还有多个功能模块,如appbasefeature/searchfeature/flashcarddomain 等。基类驻留在base 模块中,而从它们扩展的类驻留在它们的关联模块中,例如feature/search

为了支持视图绑定,我添加了一些中间抽象类,它们将充当 Viewbinding 的持有者:将膨胀的视图传递给父级,同时处理视图绑定实例的生命周期,并同时提供对子级的安全访问。我只将它们保留在基类模块中。

现在一切正常,子类能够访问基本视图绑定类,但是当我尝试构建项目时,会发生此错误。我不确定为什么会这样?

(PS:我在几个分支上工作。视图绑定代码在其中一个分支中。上周我制作了这段代码,构建并运行它,它正在工作。然后我切换了分支并开始处理其他事情. 这周,我回到同一个分支,代码没有构建)

【问题讨论】:

  • 您是否尝试过删除构建文件夹?可能是您的其他分支生成的某些文件发生冲突,应该删除
  • @BasilePerrenoud 我尝试在项目上运行 clean,但没有帮助。实际上,每个模块都在生成自己的构建文件夹,我猜测在 clean 运行时会删除该文件夹。让我尝试手动清理它们
  • 如果它与以前的代码完全一样,那一定是你的环境的问题吧?您的任何依赖项是否使用了可能已更新的非特定版本(如1.+)?任何可能发生变化的本地库?

标签: android kotlin dagger-2 dagger android-viewbinding


【解决方案1】:

谢谢大家。我将构建环境从登台更改为调试,并且成功了。现在需要解决为什么构建环境不起作用的新问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-04
    • 2014-10-11
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    相关资源
    最近更新 更多