错误:找不到符号公共抽象接口AppComponent扩展了dagger.android.AndroidInjector <EmsApplication>

时间:2019-12-06 06:41:05

标签: android dagger

你好,我是匕首的新手。我正在尝试学习,但是在生成AppComponent类时遇到了问题。这是我的AppComponent类代码。我在stackoverflow中搜索了一些答案,但没有一个不起作用。

import EmsApplication
import android.app.Application
import com.example.emsapplication.utils.SessionManager
import dagger.BindsInstance
import dagger.Component
import dagger.android.AndroidInjector
import dagger.android.support.AndroidSupportInjectionModule
import javax.inject.Singleton

@Singleton
@Component(modules = \[AndroidSupportInjectionModule::class, ActivityBuildersModule::class, AppModule::class, ViewModelFactoryModule::class\])
interface AppComponent : AndroidInjector<EmsApplication>{
    fun sessionManager(): SessionManager?

    @Component.Builder
    interface Builder {
        @BindsInstance
        fun application(application: Application?): Builder?

        fun build(): AppComponent?
    }
}
error: cannot find symbol public abstract interface AppComponent extends dagger.android.AndroidInjector<EmsApplication>

这是构建事件的输出。

Here is the build output

Here is the build.gradle

EmsApplication

2 个答案:

答案 0 :(得分:1)

尝试将您的代码更改为。

interface AppComponent : AndroidInjector<EmsApplication> {
 fun sessionManager(): SessionManager?
 @Component.Builder
 interface Builder {
      @BindInstance
      fun application(application: EmsApplication): Builder
      fun build():AppComponent

}

您能否提供更多有关此的信息?您的EmsApplication。也会有帮助的。

答案 1 :(得分:1)

一个愚蠢的错误花了我6个小时才发现,希望这个答案对您有帮助。

  • 就我而言,我没有在我的应用程序类中提供我的软件包。
  • 请确保您还在每节课中都给出您的包裹名称。enter image description here