Я пытаюсь создать экземпляр Dagger , используя некоторые внешние параметры (я пишу библиотеку), но компилятор продолжает выдавать мне следующую ошибку:
error: @Component. В построителе отсутствуют сеттеры для необходимых модулей или компонентов: [com.example.domain.LibraryClient.Dependency]
Зависимость - это простой интерфейс, который я использую для получения приложения для чтобы создать комнату.
interface Dependency {
fun getApplication(): Application
}
Это мой библиотечный компонент:
@Singleton
@Component(
modules = [AndroidInjectionModule::class, AndroidSupportInjectionModule::class, LibraryModule::class],
dependencies = [LibraryClient.Dependency::class])
interface LibraryComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun client(client: LibraryClientImpl): Builder
fun build(): LibraryComponent
}
fun inject(target: LibraryClientImpl)
}
и это инжектор:
object LibraryInjector {
private var deps: LibraryClient.Dependency? = null
fun setDependency(dependency: LibraryClient.Dependency) {
this.deps = dependency
}
fun init(client: LibraryClientImpl): LibraryComponent {
val appComponent = DaggerLibraryComponent.builder()
.dependency(deps)
.client(client)
.build()
appComponent.inject(client)
return appComponent
}
}
Я видел несколько примеров, что они используйте опцию зависимости от @Component
, и это кажется правильным. Если я удаляю dependencies = [LibraryClient.Dependency::class]
, он проходит сборку. Чего мне не хватает?