没有@Inject构造函数或@ Provides-或@ Produces-注释方法无法提供获取。在Kotlin dagger2上

时间:2019-01-15 19:20:38

标签: android kotlin dagger-2 dagger

ensure_index

尝试命名字段,仍然无法解决这个问题。

2 个答案:

答案 0 :(得分:0)

在Dagger中,您可以通过两种方式提供对象

  1. 在构造中使用@Inject

示例:

  

UserRepository @Inject构造函数(私有val mContext:上下文)

  1. 但是,我们如何@Inject构造函数和某些类的第三方(如Retrofit Service Interface)呢?那就是为什么Dagger有@Provide

示例:

@Module class AppModule { @Provides fun provideContext(application: Application): Context = application.applicationContext }

Dagger还可以通过其他方式提供对象

您可以阅读更多here

在这种情况下,您可以在AppModule之类的应用模块中提供StringPreference类

@Module class AppModule { @Provides fun provideStringPreference(context: Context): StringPreference = StringPreference(context) }

答案 1 :(得分:0)

在此处https://stackoverflow.com/a/48057282/9821453通过解决方案固定

注射时我没有使用@fields:qualifier_name。

谢谢