我无法处理与Dagger及其组件有关的错误。
import android.app.Application
import dagger.Component
@Component(modules = arrayOf(ApplicationModule::class))
interface ApplicationComponent{
fun inject(app: Application)
}
调用组件的地方看起来像这样
class MyAwesomeApplication : Application(){
val component: ApplicationComponent by lazy {
DaggerApplicationComponent.builder().appModule(ApplicationModule(this)).build()
}
override fun onCreate() {
super.onCreate()
component.inject(this)
}
}
在gradle构建文件中,我已设置:
implementation "com.google.dagger:dagger:$dagger_version"
implementation "com.google.dagger:dagger-android:$dagger_version"
implementation "com.google.dagger:dagger-android-support:$dagger_version"
kapt "com.google.dagger:dagger-android-processor:$dagger_version"
还启动了存根生成并应用了kotlin-kapt
有什么想法吗?
答案 0 :(得分:0)
app.gradle
apply plugin: 'kotlin-kapt'
android {
kapt {
generateStubs = true
}
}
// Dagger 2
implementation "com.google.dagger:dagger:$dagger2_version"
kapt "com.google.dagger:dagger-compiler:$dagger2_version"
构建->重建项目
答案 1 :(得分:0)
您的build.gradle
应该看起来像这样
apply plugin: 'kotlin-kapt'
…
dependencies {
…
final dagger_version = '2.17'
implementation "com.google.dagger:dagger:$dagger_version"
kapt "com.google.dagger:dagger-compiler:$dagger_version"
compileOnly 'javax.annotation:javax.annotation-api:1.3.2'
}
我认为您缺少的是compileOnly 'javax.annotation:javax.annotation-api:1.3.2'
。我有一个article for detailed steps to setup Dagger。
答案 2 :(得分:0)
对我来说,这是一个gradle依赖问题。通过将以下内容添加到app.gradle脚本来解决该问题:
setEduState({ ...eduState, errors: props.errors }
然后我清理并重建了项目。