Size: a a a

Moxy – MVP библиотека под Android

2018 October 24

AK

Aleksei Korshun in Moxy – MVP библиотека под Android
Проблема в функции провайда презентера
источник

MM

Maxim Motorniy in Moxy – MVP библиотека под Android
Алексей Федоров
@Inject
   @InjectPresenter
   lateinit var presenter: SplashActivityPresenter

   private var component: SplashActivityComponent? = null

   @ProvidePresenter
   fun providePresenter() = presenter
В нормальной ситуации при таком инжекте будет каждый раз создаваться презентер при создании вью. Он не будет аттачится к вью, но будет висеть в памяти
источник

AK

Aleksei Korshun in Moxy – MVP библиотека под Android
А нет извините
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Aleksei Korshun
Проблема в функции провайда презентера
Но похоже правильное направление. Нужно вот это:
DI.componentManager().provideSplashActivityComponent()
       component?.inject(this)

выполнять до вот этого
super.onCreate(savedInstanceState)
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Yuri Shmakov
Но похоже правильное направление. Нужно вот это:
DI.componentManager().provideSplashActivityComponent()
       component?.inject(this)

выполнять до вот этого
super.onCreate(savedInstanceState)
Изначально компонет я инициализировал в свойствах, а не внутри onCreate. И все равно приложении валилось из-за lateinit
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
class ComponentManager(context: Context) {

   val appComponent: AppComponent by lazy {
       DaggerAppComponent.builder().appModule(AppModule(context)).build()
   }

   fun provideSplashActivityComponent() =
           appComponent.plusSplashActivityComponent()

   fun provideLoginActivityComponent() =
           appComponent.plusLoginActivityComponent()
}
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Yuri Shmakov
Но похоже правильное направление. Нужно вот это:
DI.componentManager().provideSplashActivityComponent()
       component?.inject(this)

выполнять до вот этого
super.onCreate(savedInstanceState)
Наследуюсь я от BaseActivity
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Которая в свою очередь наследуются от MpvAppCaompatActivity
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Зависимости для мокси
//MVP Moxy
   implementation 'com.arello-mobile:moxy:1.5.5'
   implementation 'com.arello-mobile:moxy-app-compat:1.5.5'
   kapt 'com.arello-mobile:moxy-compiler:1.5.5'
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
попробуй ещё раз ссылку на гист запостить
источник

AK

Aleksei Korshun in Moxy – MVP библиотека под Android
Какой метод презентера он вызывает после которого падает?
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
вообще дебагером такое фиксится на раз, по идее =)
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
сперва поставить бряку в @ProvidePresenter, и посмотреть, вызывается ли он, вообще?
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Я ставид бряку в месте инициализации компонента и дяже бряка не успела сработать
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
сейчас в аннотацию попробую поставить
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
super.onCreate(savedInstanceState)
       component?.inject(this)

вот это точно надо поменять местами
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
хотя какая разница? если мокси бы не заинжектила, то хотя бы `component?.inject(this)
` заинжектил и дальше презентер был бы не null. Значит похоже проблема в исопльзовании даггере
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Yuri Shmakov
super.onCreate(savedInstanceState)
       component?.inject(this)

вот это точно надо поменять местами
Сейчас попробую
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Yuri Shmakov
super.onCreate(savedInstanceState)
       component?.inject(this)

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

S

Serega in Moxy – MVP библиотека под Android
кто поможет разобраться с room? напишите в личку...
источник