2017-02-11 2 views
0

J'ai deux composants pour Dagger:stackoverflow lors de l'utilisation de deux composants Dagger2

@GithubListActivityScope 
@Component(modules = { GithubListActivityModule.class, GlideActivityModule.class }) 
public interface GithubListActivityComponent { 

GithubUserListAdapter githubUserListAdapter (); 
//RequestManager requestManager(); 
LinearLayoutManager linearLayoutManager(); 

} 

Note: J'ai essayé de commenter et décommentantRequestManager requestManager(); dans GithubListActivityComponent

J'ai un autre composant comme celui-ci:

@Component(modules = { GithubApiServiceModule.class, GlideModule.class }) 
public interface GithubAppListComponent { 

RequestManager getGlideRequestManager (); 

GithubAPIService getGitHubApiService (); 
} 

Problème: -> Whe n supprimer le fichier de classe de GithubListActivityComponent ou supprimer/commenter la @component Annotation l'application fonctionne très bien MAIS quand j'essayer de construire sans supprimer ou commenter la @component Annotation le fichier que je reçois l'erreur suivante:

Error:(7, 66) error: cannot find symbol class DaggerGithubAppListComponent

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. java.lang.StackOverflowError

PS Oracle version Jdk -> 1.8.0_121

+0

Désolé mon erreur .... quel processeur d'annotation utilisez-vous? –

+0

Pour autant que je puisse traiter votre question, je n'ai utilisé aucune coutume, il doit être le processeur d'annotation Java par défaut ... Désolé si je n'ai pas répondu au point. – erluxman

+0

Quelle est la relation entre 'GithubListActivityComponent' et' GithubAppListComponent'? Il semble que le premier devrait probablement être un sous-composant de la seconde. – benji

Répondre

1

Retirer la dépendance circulaire (Un modulene devrait pas comprendre B Module si B Module comprend un)

Comment je résolu mon problème: les fournisseurs (Méthodes avec @Provide) qui étaient sur GithubListActivityModuleet dépendait sur GlideActivityModule, I déplacé eux dans GlideActivityModule pour supprimer la dépendance.