相关疑难解决方法(0)

为什么不安装 AndroidInjectionModule 仍然有效?

根据关于注入活动对象的 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

5
推荐指数
1
解决办法
709
查看次数

标签 统计

dagger-2 ×1