Почему зависимость @Named игнорируется? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть модуль, который обеспечивает Boolean значение:

@Module
class TestModule(private val isTesting: Boolean = false) {

    @Provides
    @Singleton
    @Named(nameIsTesting)
    fun provideIsTesting(): Boolean = isTesting

    // Companion
    companion object {
        const val nameIsTesting = "is_testing"
    }

}

AppComponent:

@Component(modules = [AppModule::class, TestModule::class])
@Singleton
interface AppComponent {

    @Named(TestModule.nameIsTesting)
    val isTesting: Boolean

    // ...
}

И сборка не удалась:

[Dagger/MissingBinding] java.lang.Boolean cannot be provided without an @Inject constructor or an @Provides-annotated method.
public abstract interface AppComponent {
                ^
      java.lang.Boolean is provided at
          com.app.app.di.component.AppComponent.isTesting()

Работает для других зависимостей, но не для этой. Почему?

1 Ответ

0 голосов
/ 06 ноября 2018

Попробуйте использовать

@Named(TestModule.nameIsTesting)
fun isTesting(): Boolean

вместо

@Named(TestModule.nameIsTesting)
val isTesting: Boolean
...