Я пытаюсь использовать новый dagger api для ввода активности, но получаю сообщение об ошибке lateinit property dispatchingAndroidInjector has not been initialized
// AppComponent.kt
@Singleton
@Component(modules = [
AndroidSupportInjectionModule::class,
ActivitiesModule::class
])
interface AppComponent {
fun inject(app: Application)
@Component.Builder
interface Builder {
fun build(): AppComponent
@BindsInstance
fun bindApplication(application: Application): Builder
}
}
Файл модулей активности
@Module
abstract class ActivitiesModule {
@ContributesAndroidInjector
abstract fun provideRestaurantMainActivity(): MainActivity
}
В моем MainActivity я звонювпрыск
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
А в моем приложении
class App : Application(), HasActivityInjector{
@Inject
lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Activity>
override fun activityInjector(): AndroidInjector<Activity> = dispatchingAndroidInjector
override fun onCreate() {
super.onCreate()
DaggerAppComponent
.builder()
.bindApplication(this)
.build()
.inject(this)
}
}
Есть ли что-то еще, чего мне не хватает в подключении модулей и компонентов?