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

问题描述 投票:1回答:2

你好,我是匕首的新手。我正在尝试学习,但是在生成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

android dagger
2个回答
0
投票

尝试将您的代码更改为。

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

}

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


0
投票

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

  • 就我而言,我没有在我的应用程序类中提供我的软件包。
  • 请确保您还在每个课程中都提供您的软件包名称。enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.