【发布时间】:2019-12-05 11:39:32
【问题描述】:
您好,我在我的项目中使用 dagger 2 进行此配置。
这是我的 SellerHubApplication.kt
class SellerHubApplication : Application(), HasAndroidInjector {
@Inject
lateinit var activityDispatchingAndroidInjector: AndroidInjector<Any>
override fun androidInjector(): AndroidInjector<Any> = activityDispatchingAndroidInjector
override fun onCreate() {
super.onCreate()
DaggerAppComponent.builder()
.application(this)
.build()
.inject(this)
Fresco.initialize(applicationContext)
}
}
这是我的 AppComponent.kt
@Singleton
@Component(modules = [AndroidInjectionModule::class, ActivityBuilder::class, AppModule::class])
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(app: Application): Builder
fun build(): AppComponent
}
fun inject(app: SellerHubApplication)
}
运行应用程序后,我收到此错误“错误:[Dagger/MissingBinding] dagger.android.AndroidInjector cannot be provided without an @Provides-annotated method.”
如果我将“有趣的注入(应用程序:SellerHubApplication)”更改为“有趣的注入(应用程序:应用程序)”,应用程序运行但它显示“activityDispatchingAndroidInjector 尚未初始化”。请帮我解决这个问题。
【问题讨论】: