对于AndroidInjector.Builder,这个不推荐使用的警告意味着什么?我该如何修复它?
AppComponent.kt
@Component(modules = [AndroidInjectionModule::class, AppModule::class])
@Singleton
interface AppComponent : AndroidInjector<App> {
@Component.Builder
abstract class Builder : AndroidInjector.Builder<App>() {
@BindsInstance
abstract fun application(@ApplicationContext context: Context)
@BindsInstance
abstract fun baseUrl(@Named("baseUrl") baseUrl: String): Builder
@BindsInstance
abstract fun secret(@Named("secret") secret: String): Builder
override fun seedInstance(instance: App) {
application(instance)
}
}
}App.kt
class App : DaggerApplication(), HasAndroidInjector {
@Inject
lateinit var androidInjector: DispatchingAndroidInjector<Any>
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
return DaggerAppComponent.builder()
.baseUrl(SdkConstants.BASE_URL)
.secret(BuildConfig.SECRET)
.create(this)
}
override fun onCreate() {
super.onCreate()
}
override fun androidInjector() = androidInjector
}发布于 2020-04-22 01:59:51
我相信我现在有了答案,@Component.Builder被替换为:
@Component.Factory
interface Factory {
fun create(@BindsInstance @ApplicationContext context: Context,
@BindsInstance @Named("baseUrl") baseUrl: String,
@BindsInstance @Named("secret") secret: String): AppComponent
}App的applicationInjector替换为:
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
return DaggerAppComponent.factory().create(this, SdkConstants.BASE_URL, BuildConfig.SECRET)
}https://stackoverflow.com/questions/61347634
复制相似问题