Используя новые (в 2.10) классы кинжала.андроида, я пытаюсь внедрить вещи, используя подкомпонент, который зависит от других модулей, и, следовательно, имеет Builder с сеттерами для этих модулей. Документация на https://google.github.io/dagger/android.html описывает это, но неясно, как на самом деле писать и/или вызывать эти сеттеры.
Цитата из приведенной выше ссылки:
AndroidInjection.inject() получает DispatchingAndroidInjector из приложения и передает вашу активность для ввода (Activity). DispatchingAndroidInjector ищет AndroidInjector.Factory для вашего класса активности (который является YourActivitySubcomponent.Builder), создает AndroidInjector (который является YourActivitySubcomponent) и передает вашу активность для ввода (YourActivity).
Мне кажется, что для того, чтобы иметь возможность звонить сеттерам для Builder, мне нужно где-то попасть и обеспечить, чтобы Builder имел все необходимые данные? Проблема, которую я вижу, заключается в том, что во время выполнения я получаю IllegalStateException: MODULE must be set
, когда сгенерированный конструктор для моего подкомпонента вызывается AndroidInjector.
Подкомпонент, о котором идет речь, на самом деле относится к фрагменту, а не к активности, но я не уверен, что это важно. Любые идеи о том, как это сделать?