Android 如果没有@Inject构造函数或@Provides-或@products注释方法,则无法提供获取。关于kotlin dagger2
已尝试命名字段,但仍无法解决此问题。在Dagger中,提供对象有两种方法Android 如果没有@Inject构造函数或@Provides-或@products注释方法,则无法提供获取。关于kotlin dagger2,android,kotlin,dagger-2,dagger,Android,Kotlin,Dagger 2,Dagger,已尝试命名字段,但仍无法解决此问题。在Dagger中,提供对象有两种方法 在构造中使用@Inject 例如: UserRepository@Inject构造函数(私有val mContext:Context) 但我们如何@injectconstructor和第三方类(比如翻新服务接口)一起使用呢?这就是为什么Dagger有@Provide 例如: @Module类AppModule{ @提供 fun ProviderContext(应用程序:应用程序):Context=application.a
@Module类AppModule{
@提供
fun ProviderContext(应用程序:应用程序):Context=application.applicationContext}
匕首也有一些其他的方式来提供一个对象
你可以读更多
在您的情况下,您可以像AppModule一样在应用程序模块中提供StringPreference类
@模块
类AppModule{
@提供
fun ProviderDistringPreference(上下文:上下文):StringPreference=StringPreference(上下文)
}
通过此处的解决方案修复
注入时我没有使用@fields:qualifier\u name
谢谢显示您的模块和app.sareing.core.sharedPrefs.StringPreference类。
error: app.sareing.core.sharedPrefs.StringPreference cannot be provided without an @Inject constructor or from an @Provides- or @Produces-annotated method.
public abstract void inject(@org.jetbrains.annotations.NotNull()
^
app.sareing.core.sharedPrefs.StringPreference is injected at
app.sareing.activity.MainActivity.authToken
app.sareing.activity.MainActivity is injected at
app.sareing.injection.component.ActivityComponent.inject(activity)