Dagger 2 androidx фрагмент несовместимых типов - PullRequest
0 голосов
/ 30 января 2019

Я использую Dagger 2.21 и когда я пытаюсь сделать

@Module
internal abstract class FragmentModule {
    @ContributesAndroidInjector
    internal abstract fun loginFragment() : LoginFragment
}

и

@Singleton
@Component(modules = [AndroidSupportInjectionModule::class, AppModule::class, ActivityModule::class, ViewModelBuilder::class, ViewModelModule::class, RepositoriesModule::class, ApiModule::class, FragmentModule::class])
interface AppComponent : AndroidInjector<PhotocoApplication> {
    @Component.Builder
    abstract class Builder : AndroidInjector.Builder<PhotocoApplication>()
}

, я получаю эту ошибку:

/ app/build/generated/source/kapt/debug/com/photoco/app/injection/module/FragmentModule_LoginFragment$app_debug.java:18: ошибка: несовместимые типы: класс LoginFragment не может быть преобразован в класс расширяет фрагмент

Я искал и увидел, что использование 2.21 и его установка заставляет его работать, но пока не повезло

android.useAndroidX = true;android.enableJetifier = true

Расширения LoginFragment:

dagger.android.support.DaggerFragment ()

При всей этой настройке можно 'не заставить его строить, я что-то здесь упускаю?Я могу заставить его работать с Деятельностями, используя DaggerActivity, но не с Фрагментами.

PhotocoApplication расширяет dagger.android.support.DaggerApplication

Спасибо!

1 Ответ

0 голосов
/ 31 января 2019

Исправлена ​​эта проблема путем обновления всех зависимостей кинжала до 2.21, отсутствовала поддержка Android (по-прежнему использовалась 2.16).

implementation 'com.google.dagger:dagger:2.21'
implementation 'com.google.dagger:dagger-android:2.21'
implementation 'com.google.dagger:dagger-android-support:2.21'
kapt "com.google.dagger:dagger-compiler:2.21"
kapt "com.google.dagger:dagger-android-processor:2.21"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...