Конфигурация моего кинжала для проекта android, над которым я работаю: Примечание: Я предоставил все необходимые @Component, @Module, @Provides аннотации везде, где это необходимо.Множественный независимый компонентный впрыск
MainActivity {
@Inject A a;
@Inject B b;
onCreate(){
ComponentX.inject(this);
ComponentY.inject(this);
}
}
ComponentX-> ModuleA ->providerA
ComponentY -> ModuleB -> providerB
Как вы можете видеть, это две совершенно независимые компоненты, не связанные друг с другом в любом случае, за исключением в месте инъекции.
Во время компиляции я получаю следующее сообщение об ошибке:
In file A.java
error: B cannot be provided without an @Provides- or @Produces-annotated method.
MainActivity.b
[injected field of type: B b]
я ошибаюсь, думая, что несколько компонентов могут быть использованы при использовании кинжала 2 или приложение должно использовать один большой компонент, который заботится о всех инъекции?
Может кто-нибудь помочь мне понять, где я иду не так?
Метод композиции - это то, что я сделал в настоящее время как промежуточное решение. С другой стороны, с моей точки зрения, области применения были разными, как вы упомянули. То, что я хотел идентифицировать, было то, был ли это подходящий подход, компонент целевой целевой цели, который представляет собой состав из нескольких компонентов (которые предоставляются в библиотечных проектах). – gaara87
Это определенно хороший подход, независимо от того, подходит ли вам правильный подход. Опять же, это зависит от того, что такое «api» и как вы хотите его модулировать. –
Это, безусловно, хороший подход, будь то правильный подход зависит от вас. Опять же, это зависит от того, что такое «api» и как вы хотите его модулировать. –