我在Android应用中将Dagger2用于DI,
我想通过插入片段中的viewModel,AndroidInjector
并有这两条线:
AndroidInjection.inject(this)
viewModel = ViewModelProviders.of(this, viewModelFactory).get(ProductDetailViewModel::class.java)
当我的片段扩展androidx.fragment.app.Fragment
显示此错误时:
android.support.v4.app.Fragment
android.app.Fragment
现在我不知道我的片段应该扩展哪一个!
当我选择其中之一时,我得到此错误:
None of the following functions can be called with the arguments supplied: public open fun inject(activity: Activity!): Unit defined in dagger.android.AndroidInjection public open fun inject(fragment: Fragment!): Unit defined in dagger.android.AndroidInjection public open fun inject(service: Service!): Unit defined in dagger.android.AndroidInjection public open fun inject(contentProvider: ContentProvider!): Unit defined in dagger.android.AndroidInjection
我的错误是使用dagger-android(不是dagger-android-support),而dagger-android仅具有:
AndroidInjection.inject(this)
但我应该使用
AndroidSupportInjection.inject(this)
在supportLibrary版本的dagger-android中,名为 dagger-android-support
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句