Size: a a a

2020 September 22

ES

Egor Sigolaev in Dagger 2
Artem Gilmudinov
Говорит что нет метода провайдящего Application
все есть
источник

AG

Artem Gilmudinov in Dagger 2
App != Application
источник

ES

Egor Sigolaev in Dagger 2
Artem Gilmudinov
App != Application
Опять опечатка, а теперь что? Что за связка вообще? Куда дагер пошел меня тролить?
источник

ES

Egor Sigolaev in Dagger 2
Видимо ключи одинаковые есть в компоненте, но я не вижу их
источник

AG

Artem Gilmudinov in Dagger 2
Ну а теперь App не может найти)
источник

AG

Artem Gilmudinov in Dagger 2
Вы в одном месте инджектите Application, а в другом App
источник

AG

Artem Gilmudinov in Dagger 2
Если вам и правда так надо, то добавьте два BindsInstance в билдер компонента
источник

ES

Egor Sigolaev in Dagger 2
Artem Gilmudinov
Если вам и правда так надо, то добавьте два BindsInstance в билдер компонента
спасибо, запустил наконец то
источник
2020 September 28

S

Sergey in Dagger 2
Привет!
Сориентируйте, пожалуйста, как из одного модуля спровайдить получение интерфейса (имеется две функции, где идет получение интерфейса реализованного по разному) в другой модуль в места, где нужна конкретная реализация интерфейса?
Я совсем новичок в Даггере😊
источник

S

Sergey in Dagger 2
Попробовал указать @Named для первого модуля, но как передать этот @Named в другой модуль...
источник

AG

Artem Gilmudinov in Dagger 2
Sergey
Попробовал указать @Named для первого модуля, но как передать этот @Named в другой модуль...
Привет. Первый @Named ставишь над функцией, которая провайдит имплементацию. Второй @Named ставишь рядом с аргументом провайдс функции, которая принимает твой интерфейс.
источник

S

Sergey in Dagger 2
Artem Gilmudinov
Привет. Первый @Named ставишь над функцией, которая провайдит имплементацию. Второй @Named ставишь рядом с аргументом провайдс функции, которая принимает твой интерфейс.
Если указывать для второго @Named(имя_модуля.переменная) это же допустимая практика? Вынес @Named в первом модуле как пременную
источник

AG

Artem Gilmudinov in Dagger 2
Допустимо.
источник

S

Sergey in Dagger 2
Artem Gilmudinov
Допустимо.
Спасибо 👍
источник
2020 September 29

МE

Михаил E1ement in Dagger 2
Всем привет!
Есть вопрос по scope. Сделал компонент:
chatComponent = DaggerChatComponent
       .builder()
       .appComponent(appComponent)
       .build();

((App) activity.getApplicationContext()).getChatComponent().inject(this);

и в какой-то момент поймал NullPointerException на поле с @inject. Причём не всегда такая ситуация.
Я думаю, что проблема в удалении scope, или очисткой компонента, но у меня нигде нет зануления chatComponent.
Что может быть ещё причиной?
источник

АЕ

Алексей Ершов... in Dagger 2
Например вы к этому полю обращаетесь до того, как его инжектите
источник

МE

Михаил E1ement in Dagger 2
нет, Inject идёт в конструкторе, ошибка в методе free(), который вызывается очень глубоко за deattachView(). Я вот и думаю, что система убила компонент раньше, чем мои Runnable вызвали free(). В теории такое может быть?
источник

АЕ

Алексей Ершов... in Dagger 2
Вы инжектите мутабельное поле? И даже если система убивает даггер компонент, это никак не повлияет на поле, которое уже было заинжекчено. А что вы делаете во free?
источник

МE

Михаил E1ement in Dagger 2
пытаюсь обратиться к этому полю. Но в пране мутабельности понял
источник

АЕ

Алексей Ершов... in Dagger 2
в общем, проблема скорее с жизненным циклом и ручной очисткой поля, чем в какой-то даггеромагии. Дальше код надо смотреть)
источник