根据关于注入活动对象的 Dagger 文档,它说安装AndroidInjectionModule在您的应用程序组件中。然而,没有它一切都很好。
这是否意味着我不需要申报?在什么情况下会出错?
例如:
注入实例
data class Food(val name: String)
Run Code Online (Sandbox Code Playgroud)
模块
@Module
class FoodModule{
@Provides
fun provideFood(): Food {
return Food("cholocate")
}
}
Run Code Online (Sandbox Code Playgroud)
绑定模块
@Module
abstract class MainActivityModule {
@ContributesAndroidInjector(modules = [FoodModule::class])
abstract fun FoodShop(): MainActivity
}
Run Code Online (Sandbox Code Playgroud)
AppComponent(不安装AndroidInjectionModule)
@Component(modules = [MainActivityModule::class])
interface AppComponent{
fun inject(app: App)
}
Run Code Online (Sandbox Code Playgroud)
应用程序
class App : Application(), HasActivityInjector {
@Inject
lateinit var dispatchingActivityInjector: DispatchingAndroidInjector<Activity>
override fun onCreate() {
super.onCreate()
DaggerAppComponent.create().inject(this)
}
override fun activityInjector(): AndroidInjector<Activity> {
return dispatchingActivityInjector
}
} …Run Code Online (Sandbox Code Playgroud) dagger-2 ×1