Dagger 2 - 为啥我收到循环引用错误?
Posted
技术标签:
【中文标题】Dagger 2 - 为啥我收到循环引用错误?【英文标题】:Dagger 2 - Why am I getting circular reference error?Dagger 2 - 为什么我收到循环引用错误? 【发布时间】:2021-10-17 02:39:54 【问题描述】:我有一个已经工作的匕首实现。我的 android Application 类是初始化 Dagger2 实现的类。
但是,当我添加一个使用 Activity
参数的方法时,我得到了匕首错误:
error: [ComponentProcessor:MiscError] dagger.internal.codegen.ComponentProcessor was unable to process this interface because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
我测试了不同的变体,只有在我使用 Activity 参数时才会抛出错误:
class MyApplication: Application()
...
fun addingThisFunWorks()
fun addingThisFunReturningSomethingWorks(): ReturnClass
fun addingThisFunWithParameterWorks(value: Int)
fun addingThisFunThrowsDaggerError(activity: Activity)
是不是因为 Activity 类依赖于 Application 类并且不知何故变成了循环?
【问题讨论】:
您创建的自定义类必须具有“包”前缀。有吗? @SalihCan 你说的是 Dagger 还是 kotlin?我没有在这里放置***包声明,因为它似乎与问题无关。 我的回答与您的问题无关。我对此链接中答案的评论解决了我的类似问题。 ***.com/a/68796142/13109852 并解决了除我之外的 3 个人的问题。 【参考方案1】:问题是这个类中的 Activity 和 Fragment 引用不知何故被解释为循环引用。
要修复它,我需要创建一个具有我需要的功能的“中级”管理器。
例如:
class MyApplication: Application()
...
fun addingThisFunWorks()
fun addingThisFunReturningSomethingWorks(): ReturnClass
fun addingThisFunWithParameterWorks(value: Int)
fun returnMyManager(): MyManager
还有:
class MyManager
fun addingThisFunThrowsDaggerError(activity: Activity)
【讨论】:
以上是关于Dagger 2 - 为啥我收到循环引用错误?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在使用 javascript 自动完成时在 Eclipse 中收到消息:“未处理的事件循环异常 Java 堆空间”?