【问题标题】:Dagger2 ApplicationComponent not generated(git project included)未生成 Dagger2 ApplicationComponent(包括 git 项目)
【发布时间】:2020-02-22 22:43:02
【问题描述】:
所以我正在尝试遵循 Google 的架构 example,但我的 daggerappcomponent 没有生成。我尝试更改 gradle 文件,但我不确定我做错了什么。第一次做这样的“高级”事情(至少对我来说)。我注释掉了 DI 包中的所有内容,因为没有 QuoteApplication 就无法使其工作,并且如果不构建项目并希望它会生成必要的 dagger 文件,我就无法让 QuoteApplication 工作。
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
return DaggerApplicationComponent.factory().create(applicationContext) //here is the problem
}
这是项目https://github.com/Nikola-Milovic/QuoteAppMvvm
我尝试了很多不同的构建 gradle,并尝试清理 rebuidling 等等。我已阅读所有在线修复程序,但没有任何效果。我确定这是我的错,但它可能是一个错误或什么的。我最后的手段是在这里问。有点卡住了。
【问题讨论】:
标签:
android-studio
kotlin
dependency-injection
dagger-2
auto-generate
【解决方案1】:
对我来说效果很好。
- 我建造。
- 组件已生成。
- buld 失败,因为没有导入。
- 我导入了新创建的组件。 (导入 com.example.quoteappmvvm.di.DaggerApplicationComponent)
- 有效。
包 com.example.quoteappmvvm
import com.example.quoteappmvvm.di.DaggerApplicationComponent >>> 你需要这个!!!
导入 dagger.android.AndroidInjector
导入 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())
}
}