studio medium implement google compiler annotationprocessor java android dagger-2

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''