Android 对DaggerApplicationComponent的未解析引用
我无法处理与Dagger及其组件生成相关的错误Android 对DaggerApplicationComponent的未解析引用,android,kotlin,dagger-2,dagger,kapt,Android,Kotlin,Dagger 2,Dagger,Kapt,我无法处理与Dagger及其组件生成相关的错误 import android.app.Application import dagger.Component @Component(modules = arrayOf(ApplicationModule::class)) interface ApplicationComponent{ fun inject(app: Application) } 调用组件的位置如下所示 class MyAwesomeApplication : Appli
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
有什么问题吗?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"
Build->Rebuild project您的
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'
。我有一个。对我来说,这是一个渐变依赖性问题。通过在app.gradle脚本中添加以下内容解决了此问题:
apply plugin: 'kotlin-kapt'
.
.
dependencies {
.
.
kapt "com.google.dagger:dagger-compiler:$dagger2_version"
kapt "com.google.dagger:dagger-android-processor:$dagger2_version"
}
然后,我清理并重建了项目。经过一段时间,我发现问题在于kapt依赖关系,我一直在使用“dagger android处理器”我应该在哪里使用dagger-Compiler。你也可以发布你的build.gradle文件吗?除了标准的东西,没有其他依赖项和kotlin kapt的存根生成,正如我提到的,缺少的是dagger-Compiler依赖项。@Robert感谢你发布你的答案!而不是评论,请考虑和标记它被接受-它有助于潜在的回答者知道你已经解决了你的问题,并让你获得信用在未来当别人绊倒一个类似的问题。干杯