如何使用匕首(GithubBrowserSample)在应用程序类中注入存储库?

时间:2019-09-03 19:11:18

标签: android kotlin dagger-2 android-architecture-components

我想在我的应用程序中实现身份验证,所以我想在应用程序类中获取当前登录的用户,我遵循GithubBrowserSample来开发我的应用程序,但是我对使用匕首注入非常陌生,我在如何将authRepository注入到我的应用程序类中时有些困惑。

class App : Application(), HasActivityInjector {
    @Inject
    lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Activity>

    override fun onCreate() {
        super.onCreate()
        if (BuildConfig.DEBUG) {
            Timber.plant(Timber.DebugTree())
        }
        AppInjector.init(this)
    }

    override fun activityInjector() = dispatchingAndroidInjector

}

我尝试添加

@Inject 
lateinit var authRepository: AuthRepository

在应用程序类和AppModule中

//I already have functions that provide everything the repository needs
@Singleton
@Provides
fun provideAuthRepository(
        appExecutors: AppExecutors,
        db: AppDatabase,
        trainersService: TrainersService,
        sessionDao: SessionDao,
        tokenInterceptor: TokenInterceptor
): AuthRepository {
    return AuthRepository(
            appExecutors,
            db,
            trainersService,
            sessionDao,
            tokenInterceptor
    )
}

但它会引发未初始化的属性访问异常

希望您可以按照github示例方法帮助我实现这一目标。

0 个答案:

没有答案