Получение экземпляра подкомпонента в действие

AppComponent :

 @PerApplication @Component(modules = arrayOf(AppModule::class)) interface AppComponent { } 

AppModule :

 @Module(subcomponents = arrayOf(ActivityComponent::class)) class AppModule(private val context: Context) { @Provides @PerApplication fun provideContext() = context @Provides @PerApplication fun provideSharedPreferences(context: Context) = context.getSharedPreferences("${context.packageName}.preferences", Context.MODE_PRIVATE) @Provides @PerApplication fun provideMoshi() = Moshi.Builder().build() @Provides @PerApplication fun provideRetrofit(moshi: Moshi): Retrofit { return Retrofit.Builder() .baseUrl("https://reqres.in") .addConverterFactory(MoshiConverterFactory.create(moshi)) .addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io())) .build() } } 

ActivityComponent :

 @PerActivity @Subcomponent(modules = arrayOf(ActivityModule::class)) interface ActivityComponent { fun inject(activity: MainActivity) @Subcomponent.Builder interface Builder { fun activityModule(module: ActivityModule): Builder fun build(): ActivityComponent } } 

ActivityModule :

 @Module class ActivityModule(private val activity: FragmentActivity) { @Provides @PerActivity fun provideActivity() = activity @Provides @PerActivity fun provideTestApi(retrofit: Retrofit) = retrofit.create(TestApi::class.java) } 

Как получить экземпляр Builder ActivityComponent в MainActivity ?

Действия создаются кинжалом, поэтому я не могу внедрить поставщика в конструктор, как пример, приведенный в официальных документах .

Я попытался использовать метод pre dagger-2.7 для создания подкомпонентов, добавив следующую строку в AppComponent :

 fun activityComponent(module: ActivityModule): ActivityComponent 

и в MainActivity :

 (application as App).appComponent.activityComponent(ActivityModule(this)).inject(this) 

который дал мне:

Ошибка: [com.example.injection.ActivityComponent.inject (com.example.modules.main.MainActivity)] com.example.api.TestApi не может быть предоставлен без метода @ Provides-annotated.