Size: a a a

2020 November 29

AK

Anton Kazakov in Dagger 2
смотри. ты хочешь чтобы в твоих компонентах Б и С переиспользовался один и тот же инстанс который провайдится в модулях компонента А и компонент А является родительский для компонентов Б и С. чтобы построить компоненты Б и С тебе нужно в их компонент билдер передать инстанс компонента А.

твой вопрос заключается в том как/где тебе хранить/провайдить инстанс компонента А?
источник
2020 December 01

F

Fieldmarshal in Dagger 2
Всем привет. Есть проблема с тестовыми зависимостями в Dagger, обычные зависимости работают нормально. Обновил тестовые зависимости, запускаю один из UI-тестов и сразу же получаю java.lang.IllegalArgumentException: No injector factory bound for Class<FormActivity>

В доках даггера рекомендуется заводить Subcomponent под каждую Activity, но для уменьшения кол-ва кода сделан один общий Subcomponent со всеми необходимыми Activity.
Есть подозрение, что это из-за наличия инжектора только в базовом классе BaseDaggerActivity (по идее, injector доступен из всех дочерних классов, так что проблем быть не должно), хотя я могу ошибаться.

Лог исключения прикреплён. Код - https://gist.github.com/fm-norton/afc58aa000bd31d0eb84e7881372a097

Вопрос: в чём причина этого исключения, и как исправить ошибку?
источник
2020 December 07

S

Shieldy in Dagger 2
@dmitrysukhov96, пожалуйста, нажмите на кнопку ниже в течение указанного времени, иначе вы будете кикнуты. Спасибо! (60 сек)
При поддержке Тудуранта
источник
2020 December 15

МE

Михаил E1ement in Dagger 2
!спам
источник

СБ

Саша Брославский... in Dagger 2
!спам
источник
2020 December 17

a

akniyet in Dagger 2
Насколько критично инжектить активити в кастомный класс(навигатор), если этот кастомный класс имеет скоуп активити
источник

Y

Yanis in Dagger 2
вообще не желательно, это говорит о том что у вас подход не правильный
источник

АЕ

Алексей Ершов... in Dagger 2
почему?
источник

a

akniyet in Dagger 2
Ну мы же биндим контекст активити иногда
источник

Y

Yanis in Dagger 2
говорю из своего опыта, всегда можно обойтись без бинда активити
источник

Y

Yanis in Dagger 2
а насчет навигации можно посмотреть как сделан чичерон, там без бинда активити все нормально работает
источник

Y

Yanis in Dagger 2
akniyet
Ну мы же биндим контекст активити иногда
только апп контекст, а зачем вам контекст активити?
источник

Y

Yanis in Dagger 2
биндить активити плохо потому что всегда есть шанс утечки пусть и не сейчас но в будущем
лучше проблему предотвратить чем всегда стараться ее избегать
источник

a

akniyet in Dagger 2
Yanis
а насчет навигации можно посмотреть как сделан чичерон, там без бинда активити все нормально работает
даа, посмотрел, там происходит bind и unbind, в зависимости от ЖЦ активити
источник

Y

Yanis in Dagger 2
мы используем такой же подход, проблем замечено не было
источник

JF

Jorik Fat in Dagger 2
Yanis
мы используем такой же подход, проблем замечено не было
а если забыть вызвать unbind()? это разве не равносильно утечке?
источник

SV

Sviat Volkov in Dagger 2
чичерон наверное не лучший пример, т.к. это библиотека, которая независима от даггера. если всё в скоупе активити то всё ок. не вижу проблем
источник

Y

Yanis in Dagger 2
Jorik Fat
а если забыть вызвать unbind()? это разве не равносильно утечке?
да, но этой скорей баг и рано или поздно ты его обнаружишь

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

JF

Jorik Fat in Dagger 2
Yanis
да, но этой скорей баг и рано или поздно ты его обнаружишь

Я не отрицаю что можно класть активити в DI, но я за то чтобы этого не делать чтобы избежать проблем.
Притом я не вижу объективных причин хранить активити в DI
я согласен с тем, что хранить context где-то в стороне от android - не лучшая затея исходя из архитектурных соображений. Но то что Вы приводите пример bind/unbind == хранить context
источник

Y

Yanis in Dagger 2
не совсем то, но спорить не буду

тут скорей вопрос а зачем ложить активити в DI?
источник