DaggerはKotlinで提供された1つのメソッドを認識しません。これは、モジュールの重要な部分である:次のように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のListの問題は何ですか?
インターセプタプロバイダをクライアントプロバイダに配置して、再度ビルドを試みることはできますか? – savepopulation
それは変わりません。しかし、私はそれを試した。同じ問題。 – grenzfrequence
私はそれが違いを生むべきではないことを知っていますが、私は何とかこのような問題を修正しました。あなたがkotlinで短剣を使用しようとしているとき、あなたはいくつかの興味深い問題と解決策に直面しています。 – savepopulation