Kotlin – Кинжал 2 – это не инъекционные объекты

Я создал простое приложение для тестирования инъекции кинжала 2. Я думаю, что я написал все правильно, но во время выполнения я получаю эту ошибку.

kotlin.UninitializedPropertyAccessException: lateinit property app has not been initialized 

Оказывается, ни одна из моих зависимостей не вводится.

Вот мой пример:

Компонент:

 @Component(modules = arrayOf(AppModule::class)) interface AppComponent { fun inject(app : App) } 

IMainomponent:

 @Component(modules = arrayOf(MainPresenterModule::class)) interface IMainComponent { fun inject(mainView : MainActivity) } 

AppModule:

 @Module class AppModule(val app: App) { @Provides @Singleton fun provideApp() : App = app } 

Модуль главного презентатора:

 @Module class MainPresenterModule(private val view: MainActivity) { @Provides fun provideView() : MainActivity = view } 

Использование в деятельности:

 class MainActivity : AppCompatActivity(), IMainView { @Inject lateinit var presenter : MainPresenter @Inject lateinit var app : App val component: IMainComponent by lazy { DaggerIMainComponent .builder() .mainPresenterModule(MainPresenterModule(this)) .build() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) component.inject(this) // presenter.beginMessuring() if(app != null) // fails here because all lateinits are null { } } override fun toastMessage(message: String) { Toast.makeText(this, message, Toast.LENGTH_LONG).show() } } 

Не могли бы вы сказать мне, что я делаю что-то неправильно.

Кинжал для колышек:

 kapt 'com.google.dagger:dagger-compiler:2.13' implementation 'com.google.dagger:dagger:2.13' 

РЕДАКТИРОВАТЬ:

Я добавил, что, когда я настраиваю график Dagger, например,

 DaggerIMainComponent.builder().mainPresenterModule(MainPresenterModule(this)).build() 

Я получаю информацию о том, что метод mainPresenterModule устарел. Я нашел информацию о том, что андроид-студия обычно показывает эту информацию, когда она не может найти какой-либо компонент, встроенный в модуль.

Intereting Posts
Android Studio бросает java.lang.ClassNotFoundException при запуске кода Kotlin Не удалось найти классы Котлина в функциональном модуле из другого модуля Kotlin: установка частного булева класса Java через класс Data в Котлине. Почему я не могу это сделать? Kotlin-android-расширение связи между классами, аналогичными общению с другими фрагментами Котлин: Разница в определении коллекции Неустранимое исключение, если оно не подключено к Интернету RxAndroid – использование RxView.touches очищает другие обработчики Есть ли лучший способ декодировать html прямо на Android? Как интегрировать расширенные рекламные объявления Admob с помощью Kotlin – Android Ошибка использования IntDef, определенного в Kotlin при использовании в Java Котлин Абстрактное защищенное свойство RecyclerView добавляет «пустой» элемент макета, и когда я нажимаю его, приложение падает Расширение Kotlin Android не может разрешить «текст», Нечеткость разрешения перегрузки Котлина в стандартной библиотеке Как «продолжить» или «ломать» в выражении `when` внутри цикла while, используя Kotlin