Dagger 2 inject() 包含一个依赖循环

Dagger 2 inject() contains a dependency cycle

我在尝试迁移到 Dagger 2 的 Dagger 中有以下设置:

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 版本,问题就不再存在了。