Предупреждение при использовании dagger: «@Component.В Builder есть настройки для модулей или компонентов, которые не требуются»

#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. Это создало настоящую проблему.