#android #dagger-2
#Android #dagger-2
Вопрос:
Я пытаюсь реализовать новые функции с помощью Dagger.
Мой код
object File {
lateinit var component: Component
fun initialize(@NotNull context: Context) {
component = DaggerFile_Component
.builder()
.context(context)
.build()
}
@dagger.Component(modules = [Module::class])
interface Component {
fun uploadFile(): UploadFile
fun awsService(): AwsService
fun glideLoad(): GlideLoad
@dagger.Component.Builder
interface Builder {
@BindsInstance
fun context(context: Context): Builder
fun build(): Component
}
}
@dagger.Module
internal abstract class Module {
@Binds
internal abstract fun bindUploadFile(uploadFileImp: UploadFileImp): UploadFile
@Binds
internal abstract fun bindAwsService(awsServiceImp: AwsServiceImp): AwsService
@Binds
internal abstract fun bindGlideLoad(glideLoadImp: GlideLoadImp): GlideLoad
}
}
При сборке проекта я получаю:
@Component.Builder has setters for modules or components that aren't required
Любая помощь действительно ценится.
Комментарии:
1. Можете ли вы предоставить
UploadFileImp
,AwsServiceImp
GlideLoadImp
(минимальную) реализацию? Согласно исходному коду — похоже, вы предоставляете зависимость, которую не использует ни один из ваших модулей.2. Я бы предположил, что вы нигде не используете
Context
, и предупреждение предназначено для того, чтобы сообщить вам об этом. Вероятно, это исчезнет, если вы действительно где-то используетеContext
.3. Есть ли у вас какой-либо другой компонент в вашем коде? Я не думаю, что этот компонент вызывает проблему
4. @all : Я разобрался с проблемой. Я пропустил добавление компонента в AppComponent из другого модуля Android. Это создало настоящую проблему.