您应该
@Singleton进行
CComponent类声明。
@Singleton@Component(modules = CCModule.class) public interface CComponent { XXX getXXX();}错误消息中的解释:
CComponent是无作用域的,
@Singleton是作用域。Dagger 2不允许无作用域的组件使用具有范围绑定的模块。
但是,现在您将收到以下错误:
AComponent (unscoped) cannot depend on scoped components:@Component(dependencies = CComponent.class, modules = AModule.class)
无作用域的组件不能具有范围依赖性。因此,您需要确定
AComponent范围。为此,创建自定义
AScope注释。
@Scope@Retention(RetentionPolicy.RUNTIME)public @interface AScope {}并用它注释
AComponent:
@AScope@Component(dependencies = CComponent.class, modules = AModule.class)public interface AComponent {}这些是最新快照版本中出现的新要求。在相应的问题中进行了讨论,并且可能仍会更改。



