为什么AdnroidInjector.inject(fragment)使用不推荐使用的android.support.v4.app.Fragment

贝加拉德

我在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在android.support.v4.app.Fragment.setTargetFragment期间出现java.lang.IllegalArgumentException

使用backstack时android.app.Fragment和android.support.v4.app.Fragment的不同行为

Android Studio android.support.v4.app.Fragment'

无法转换为android.support.v4.app.Fragment

android.support.v4.app.Fragment的缺点

setTargetFragment for android.support.v4.app.Fragment?

android.support.v4.app.Fragment中的MapView

android.app.Fragment和android.support.v4.app.Fragment之间的区别

App.Fragment和V4.support.fragment中的地图

无法解析android.support.v4.app.Fragment(版本21.0.3)Android Studio中的方法getContext()

为什么可以在Android 4.0.3模拟器上使用Android Support v4

在 PreferenceFragment 和 android.support.v4.app.Fragment 之间切换;

在空对象引用上无效android.support.v4.app.Fragment.setMenuVisibility(boolean)'

typeanumber中的错误-无法解决android.support.v4.app.fragment

错误:无法将MapFragment强制转换为android.support.v4.app.Fragment

错误的第二个参数类型。需要:'android.support.v4.app.Fragment'

片段错误:需要不兼容的类型:android.support.v4.app.Fragment,找到:package_name.app_name.Fragment_name

无法在服务器上构建android应用-找不到android.support.v4.app.Fragment的类文件

在android.support.v4.app.Fragment.onActivityResult(int,int,android.content.Intent)上获取NullPointerException

com.google.android.gms.maps.mapfragment和android.support.v4.app.fragment之间的区别

无法将类型“ Android.Support.V4.App.Fragment”转换为“ Android.Gms.Maps.MapFragment”

NullPointerException:尝试在空对象引用上调用虚拟方法“void android.support.v4.app.Fragment.setMenuVisibility(boolean)”

如何解决不可转换的类型,无法将“ Android.support.v4.app.fragment”转换为“ packagename”

找不到android.support.v4.fragment的fragmentclass文件

android.support.v4.app.FragmentActivity扩展了什么?

如何替换不推荐使用的android.support.v4.app.ActionBarDrawerToggle

在androidx.fragment.app.Fragment中,不赞成使用setUserVisibleHint(),为什么不执行?

Android-尝试在空对象引用上调用虚拟方法'void android.support.v4.app.Fragment.setMenuVisibility(boolean)'

不可兑换的类型; 无法施展“android.support.v4.app.Fragment”到“com.google.android.gms.maps.SupportMapFragment”