Dagger無法識別Kotlin中提供的一種方法。這是模塊的重要組成部分:Dagger 2無法識別Kotlin中的提供方法。 Java可以正常工作
@Provides
@AppScope
fun provideClient(cache: Cache, interceptors: List<Interceptor>?): OkHttpClient {
val httpBuilder = OkHttpClient.Builder()
interceptors?.let {
for (interceptor in interceptors) {
httpBuilder.addInterceptor(interceptor)
}
}
return httpBuilder
.cache(cache)
.build()
}
@Provides
@AppScope
fun provideInterceptors(): List<Interceptor>? {
return listOf(HttpLoggingInterceptor().setLevel(WebServiceConfig.LOGGING_LEVEL))
}
錯誤消息如下:
AppComponent.java:15: error: java.util.List<? extends okhttp3.Interceptor> cannot be provided without an @Provides-annotated method.
如果我使用MutableList,那麼它的工作原理。因此問題是:Dagger2/Kotlin中的列表有什麼問題?
你可以把你的攔截器提供者放在你的客戶端提供者上,並嘗試重新構建嗎? – savepopulation
這並沒有什麼不同。但我試過了。同樣的問題。 – grenzfrequence
我知道它不應該有所作爲,但我解決了這樣的問題。當你試圖用kotlin使用匕首時,你會遇到一些有趣的問題和解決方案。 – savepopulation