匕首新的API。但无法实现与单身范围运行范围

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

我的范围:

@Scope
@Retention
annotation class ActivityScope

的AppModule:

 @Module(includes = [ActivityModule::class])
class AppModule {

    @Provides
    @Singleton
    fun provideContext(application: Application): Context {
        return application
    }

    @Provides
    @Singleton
    internal fun provideDataManager(appDataManager: AppDataManager): DataManager {
        return appDataManager
    }


}

UsecaseActivityModule:

@Module
    class UsecaseActivityModule {

        @Provides
        @RegisterActivityScope
        fun provideUsecase(appDataManager: AppDataManager): UseCase =
            UseCase(appDataManager)

    }


@Module
internal abstract class ActivityModule {


    @ContributesAndroidInjector(
        modules = [
            UsecaseActivityModule::class

        ]
    )
    internal abstract fun contributeUsecaseActivity(): UsecaseActivity

}

问题是我不能提供这样的:

@Provides
        @Singleton
        fun provideContext(application: Application): Context {
            return application
        }

遇到错误

错误:(无范围)可以不引用范围的绑定:@Subcomponent(

 bla bla bla ...   

AppComponent.java:6:错误:com.example.di.AppComponent作用域与@Singleton可以不引用绑定与不同作用域:@ dagger.Component(模块= {dagger.android.AndroidInjectionModule.class,com.example.di.ActivityModule的.class,com.example.di.AppModule.class})

我究竟做错了什么?

android kotlin dagger-2 dagger
1个回答
0
投票

我没有指定与@RegisterActivityScope父模块范围。

    @Module
    internal abstract class ActivityModule {

        @RegisterActivityScope // <-- just need add this
        @ContributesAndroidInjector(
            modules = [
                UsecaseActivityModule::class

            ]
        )
        internal abstract fun contributeUsecaseActivity(): UsecaseActivity

    }
© www.soinside.com 2019 - 2024. All rights reserved.