У меня возникли некоторые проблемы при попытке выполнить инъекцию фрагмента AndroidX, и я не уверен, что именно это за проблема, и как ее исправить.Приложение отказывается от сборки, выдавая следующую ошибку:
error: [Dagger/MissingBinding] java.util.Map<java.lang.Class<? extends androidx.fragment.app.Fragment>,javax.inject.Provider<dagger.android.AndroidInjector.Factory<? extends androidx.fragment.app.Fragment>>> cannot be provided without an @Provides-annotated method.
Вот метод для предоставления инъекции во фрагменте:
private fun performDependencyInjection() = AndroidSupportInjection.inject(this)
Родительское действие фрагмента реализует HasSupportFragmentInjector:
class MainActivity : BaseActivity(), MainMVPView, HasSupportFragmentInjector {
@Inject
internal lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>
...
override fun supportFragmentInjector() = dispatchingAndroidInjector
}
Я совершенно заблудился относительно того, где решить эту ошибку отсюда.Не похоже, что в настоящее время имеется много документации по использованию Dagger2 с AndroidX.
Мне кажется, важно отметить, что я включил AndroidX и Jetifier через gradle.properties:
android.useAndroidX=true
android.enableJetifier=true
Однако после очистки и перестройки проекта ничего не изменилось.
Как правильно выполнить инъекцию фрагмента AndroidX с помощью Dagger2?
Редактировать: Для записи этона Dagger 2 версии 2.19.Если я переключаюсь на использование 2.16, все работает нормально.