Ral*_*ann 12 java android dagger-2
这是我目前拥有的,它的工作原理:
@FragmentScope
@Component(dependencies = {FacebookComponent.class},
modules = {FragmentFacebookLoginModule.class})
public interface FragmentFacebookLoginComponent {
void inject(FragmentFacebookLogin fragment);
}
Run Code Online (Sandbox Code Playgroud)
现在我想添加另一个依赖项.我改成了这个:
@Component(dependencies = {FacebookComponent.class, AnotherComponent.class},
modules = {FragmentFacebookLoginModule.class})
Run Code Online (Sandbox Code Playgroud)
但现在我收到此错误消息:
FragmentFacebookLoginComponent依赖于多个作用域组件
我怎么解决这个问题?我怎样才能拥有多个依赖项?
如果我从一个组件中删除范围,我收到此错误消息:
AnotherComponent(unscoped)不能依赖于作用域组件
我在这里找到了答案:https ://stackoverflow.com/a/29619594/1016472
最后,我创建了一个具有正确范围的 AppComponent,并让 FacebookComponent 和 AnotherComponent 扩展了这个 AppComponent。
FacebookComponent 和 AnotherComponent 没有自己的作用域(我将其删除)。
现在看起来像这样:
@AppScope
@Component
public interface AppComponent {
}
@Component(modules = {FacebookModule.class})
public interface FacebookComponent extends AppComponent {
}
@Component(modules = {AnotherModule.class})
public interface AnotherComponent extends AppComponent {
}
@FragmentScope
@Component(dependencies = {FacebookComponent.class, AnotherComponent.class},
modules = {FragmentFacebookLoginModule.class})
public interface FragmentFacebookLoginComponent {
void inject(FragmentFacebookLogin fragment);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4822 次 |
| 最近记录: |