Я использую кинжал 2.11
Модуль
@Module
class MyModule {
@Provides
fun provideString() : String = "yo"
@Provides @Named("injector")
fun provideInzectorString() : String = "named_injection"
@Singleton @Provides //The error goes away if I remove @Singleton
fun provideRepository() = Repository(Interceptor(),"")
}
Модуль привязки активности
@Module
abstract class ActivityBindingModule {
@ContributesAndroidInjector(modules = [MyModule::class])
abstract fun suggestionActivity() : SuggestionsActivity
@ContributesAndroidInjector(modules = [MyModule::class])
abstract fun editSubscriptionActivity() : SubscribeActivity
}
AppComponent
@Singleton
@Component(modules = {
AndroidInjectionModule.class,
MyModule.class
})
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(MyApplication application);
AppComponent build();
}
void inject(MyApplication app);
}
Я получаю эту ошибкуНа компиляции
SubscribeActivitySubcomponent (unscoped) may not reference scoped bindings:
@Singleton @Provides @org.jetbrains.annotations.NotNull
Я видел эти решения 1 и 2 .Оба просят вас аннотировать ваш компонент приложения с помощью @Singleton
, что я уже делаю.Что не так с моим кодом?