匕首2 inject()包含一个依赖周期
作者:互联网
我在Dagger中尝试将以下设置迁移到Dagger 2:
public class Origin {
final A a;
public Origin(A a) {
this.a = a;
}
}
public class A {
final B b;
@Inject public A (B b) {
this.b = b;
}
}
public class B {
final Lazy<A> a;
@Inject public B (Lazy<A> a) {
this.a = a;
}
}
然后在我的模块上:
@Provides @Singleton Origin providesOrigin(A a) {
return new Origin(a);
}
问题是,即使我使用的是Lazy,Dagger 2也会给我带来以下编译时错误:
error: AppComponent.inject() contains a dependency cycle
我想念什么吗?我尝试用Provider替换Lazy,但结果是相同的.
解决方法:
我的问题是我正在使用Dagger 2.0版本,该版本仍然是开放的issue.一旦将其更新为当前的2.1版本,该问题就不再存在.
标签:dagger-2,android 来源: https://codeday.me/bug/20191118/2031471.html