java - medium - implement dagger 2 android
No se puede encontrar la clase de sÃmbolo "Generada" para Dagger 2 (3)
La respuesta correcta hoy es usar una versión de daga que sea mayor que 2.1 (debido a la github.com/google/dagger/issues/95 mencionada por @tomrozb está integrada en 2.1)
Acabo de empezar a hacer la inyección de dependencia usando Dagger 2 . Cuando hice girar mis modules , components y traté de construir mi aplicación, gradle lanzó el error.
Error:(4, 24) error: cannot find symbol class Generated
Busqué en él y encontré que el error está en una de las clases que Dagger genera para hacer DI . La clase particular que falta fue javax.annotation.Generated y la línea que lanza el error es la línea que anota una clase generada por Dagger como @Generated("dagger.internal.codegen.ComponentProcessor")
This pregunta ayudó a encontrar la solución que consiste en agregar el paquete javax como una dependencia al agregar la línea compile ''org.glassfish:javax.annotation:10.0-b28'' a mi archivo de compilación de gradle. Esto llevó a una construcción exitosa.
Mi pregunta es, ¿por qué no se agrega eso como una dependencia transitiva para Dagger o por qué nadie más ha enfrentado este problema en particular (supongo que sí, ya que no pude encontrar ninguna pregunta aquí con respecto a esto?
Lea esto para obtener más información: github.com/google/dagger/issues/95
Básicamente, la solución es hacer lo que ya ha hecho, que incluye la biblioteca de anotaciones javax glassfish.
TL; DR usa Dagger> = 2.1
Alex tiene razón, pero es mejor agregar la dependencia JSR250 en lugar de GlassFish
provided ''javax.annotation:jsr250-api:1.0''
o para el último plugin gradle:
compileOnly ''javax.annotation:jsr250-api:1.0''