根据官方文档:https://google.github.io/dagger/subcomponents.html,我在@Module中添加了一个子组件,代码如下:
并且像这样声明我的组件和子组件:
但是代码无法成功编译。错误信息如下:
@Module(subcomponents = {MainActivityComponent.class})
public class ContextModule {
private Context mContext;
public ContextModule(Context context) {
mContext = context;
}
@Provides
public Context provideContext() {
return mContext;
}
}
并且像这样声明我的组件和子组件:
@Component(modules = ContextModule.class)
public interface AppComponent {
Context provideContext();
MainActivityComponent getMainActivityComponent();
}
@Subcomponent(modules = {HardwareModule.class, SoftwareModule.class})
public interface MainActivityComponent {
void injectMainActivity(MainActivity activity);
}
但是代码无法成功编译。错误信息如下:
Error:(11, 1) : com.kilnn.dagger2.example.MainActivityComponent doesn't have a @Subcomponent.Builder, which is required when used with @Module.subcomponents
我不知道如何编写@Subcomponent.Builder,如果我在@Module中删除子组件声明,则一切正常。因此,我不知道如何正确使用子组件。