La mia configurazione di pugnale per un progetto Android su cui sto lavorando: Nota: ho fornito tutte le necessarie annotazioni @Component, @Module, @Provides ovunque sia necessario.Iniezione a più componenti indipendenti
MainActivity {
@Inject A a;
@Inject B b;
onCreate(){
ComponentX.inject(this);
ComponentY.inject(this);
}
}
ComponentX-> ModuleA ->providerA
ComponentY -> ModuleB -> providerB
Come si può vedere, si tratta di due componenti completamente indipendenti tra loro non in alcun modo tranne che nel punto di iniezione.
Durante la compilazione ottengo il seguente errore:
In file A.java
error: B cannot be provided without an @Provides- or @Produces-annotated method.
MainActivity.b
[injected field of type: B b]
mi sbaglio a pensare che più componenti può essere utilizzato durante l'utilizzo di pugnale 2 o è l'applicazione dovrebbe utilizzare una grande componente che si occupa di tutti i iniezioni?
Qualcuno può aiutarmi a capire dove sto andando male?
Il metodo di composizione è quello che ho fatto attualmente come soluzione intermedia. D'altra parte, dalla mia comprensione, gli ambiti erano un uso diverso proprio come hai detto tu. Quello che volevo identificare era se questo fosse l'approccio giusto, componente di iniezione target singolo che è una composizione di più componenti (che sono forniti in progetti di libreria) – gaara87
È sicuramente un buon approccio, se è l'approccio giusto dipende da voi. Di nuovo dipende da cosa è la tua 'API' e come vuoi modularla. –
È sicuramente un buon approccio, se è l'approccio giusto dipende da te. Di nuovo dipende da cosa è la tua 'API' e come vuoi modularla. –