Компонент приложения Dagger2 не создан (включен git-проект) - PullRequest
0 голосов
/ 27 октября 2019

Итак, я пытаюсь следовать архитектуре Googles пример , и мой компонент daggerapp не генерирует. Я попытался изменить файлы Gradle, но я не уверен, что я делаю неправильно. В первый раз делаю что-то «продвинутое», как это (по крайней мере для меня). Я закомментировал все из пакета DI, так как я не могу заставить его работать без QuoteApplication, и я не могу заставить QuoteApplication работать без сборки проекта и надеяться, что он сгенерирует необходимые файлы кинжала.

    override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
        return DaggerApplicationComponent.factory().create(applicationContext) //here is the problem
    }

Вот проект https://github.com/Nikola-Milovic/QuoteAppMvvm Я перепробовал много разных сборочных версий и попытался очистить ребайдинг и так далее. Я прочитал все онлайн исправления, но ничего не помогло. Я уверен, что это моя вина, но это может быть ошибка или что-то в этом роде. Мое последнее средство - спросить здесь. Вроде застрял на этом.

1 Ответ

0 голосов
/ 30 октября 2019

Отлично сработало для меня.

  1. Я строю.
  2. Компонент сгенерирован.
  3. Buld завершается ошибкой из-за отсутствия импорта.
  4. Я импортирую недавно созданный компонент. (импорт com.example.quoteappmvvm.di.DaggerApplicationComponent)
  5. Работает.

пакет com.example.quoteappmvvm

import com.example.quoteappmvvm.di.DaggerApplicationComponent >>>> Вам нужно это !!!

import dagger.android.AndroidInjector

import dagger.android.support.DaggerApplication

//open class QuoteApplication{
////    override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
////
////        return DaggerApplicationComponent.factory().create(applicationContext)
////    }
//
////    override fun onCreate() {
////        super.onCreate()
////       // if (BuildConfig.DEBUG) Timber.plant(DebugTree())
////    }
//}

open class QuoteApplication : DaggerApplication() {
    override fun applicationInjector(): AndroidInjector<out DaggerApplication> {

        return DaggerApplicationComponent.factory().create(this)
    }

    override fun onCreate() {
        super.onCreate()
       // if (BuildConfig.DEBUG) Timber.plant(DebugTree())
    }
}
...