其他分享
首页 > 其他分享> > 匕首2 inject()包含一个依赖周期

匕首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