Reprository : - 다음 TasksModule에서 , 내가 다른를 추가 할 https://github.com/googlesamples/android-architecture대거 범위 충돌
지점 잭-MVP-단검
이 TaskFragment가 contructorinjection
예를 들어를 사용하여 주입되는 것을 알 수있다 TaskFragment의 필드 주입을위한 작업 조각을위한 모듈
@Module
class TasksModule{
@Fragmentscoped
@contributesandroidinjector(modules = AnotherModule.class)
abstract TasksFragment tasksFragment();
}
@Module
public class AnotherModule {
@Provides
@FragmentScoped
static Calendar getCalendar() {
return Calendar.getInstance();
}
}
@activityscoped
public class TasksFragment extends DaggerFragment implements TasksContract.View {
@Inject
Calendar calendar;//Field injection
@Inject
TasksFragment(){
}
}
활동 :
Error:(34, 8) error: [dagger.android.AndroidInjector.inject(T)] java.util.Calendar cannot be provided without an @Provides- or @Produces-annotated method.
java.util.Calendar is injected at
com.example.android.architecture.blueprints.todoapp.tasks.TasksFragment.calendar
dagger.Lazy<com.example.android.architecture.blueprints.todoapp.tasks.TasksFragment> is injected at
com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity.taskFragmentProvider
com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity is injected at
dagger.android.AndroidInjector.inject(arg0)
A binding with matching key exists in component: com.example.android.architecture.blueprints.todoapp.tasks.TasksModule_TasksFragment.TasksFragmentSubcomponent
내가 주입에 관한 여기 아무것도 실종 :
public class TasksActivity extends DaggerAppCompatActivity {
@Inject
Lazy<TasksFragment> taskFragmentProvider;
....
}
내가 같은 오류는 무엇입니까?
[귀하의 다른 질문] (https://stackoverflow.com/q/47444206/1426891)의 후속 조치로서이 코드에는 더 구체적인 코드가 있지만 "가능한가요?" 우리가 당신의 코드를 시도했는지 여부. 너? 오류 메시지가 나타 납니까? –
내 질문을 업데이트했습니다. 제안 해 주셔서 감사합니다. –
아! 훨씬 나아 졌어, 고마워. 내가 대답하기 전에, 당신이 TasksFragment activity-scoped를 만들었던 이유가 있습니까? fragment-scoped가 아니거나 완전히 unscoped입니까? –