Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


No se puede encontrar la clase de símbolo "Generated" para Dagger 2

Acabo de empezar a hacer la inyección de dependencia con Dagger 2 . Cuando hice girar mis modules , components e intenté construir mi aplicación, gradle lanzó el error

Error:(4, 24) error: cannot find symbol class Generated

  • ¿Cómo inyectar dependencias en cualquier tipo de objeto con Dagger2?
  • Dagger 2 singletons no funciona
  • ¿Puedo inyectar la clase estupenda cuando uso dagger2 para la inyección de la dependencia?
  • ¿Puede alguien dar una buena explicación de Dagger 2?
  • Dagger2 no genera archivos "Dagger_"
  • ¿Cómo organizas tus módulos y componentes Dagger 2?
  • Cavé en él y encontré que el error está en una de las clases que Dagger genera para hacer DI . La clase particular que falta es javax.annotation.Generated y la línea que lanza el error es la línea que anntotates una clase Dagger generada como @Generated("dagger.internal.codegen.ComponentProcessor")

    Esta pregunta ayudó a encontrar la solución que es agregar el paquete javax como una dependencia añadiendo la línea compile 'org.glassfish:javax.annotation:10.0-b28' a mi archivo de compilación gradle. Esto llevó a una construcción exitosa.

    Mi pregunta es, ¿por qué no se agrega esto como una dependencia transitiva para Dagger o por qué nadie más se ha enfrentado a este problema en particular (supongo que sí, ya que no pude encontrar ninguna pregunta aquí con respecto a esto?

  • Método de inyección con Dagger 2
  • Referencia no resuelta para Dagger 2 en Kotlin
  • Dagger2 - nulo en lugar del objeto inyectado
  • Dagger 2 en Android @Singleton clase anotada que no se inyecta
  • No se puede proporcionar sin un constructor @Inject o de un método @ Proporcionado-anotado
  • Cómo inyectar una actividad en un adaptador usando dagger2
  • 3 Solutions collect form web for “No se puede encontrar la clase de símbolo "Generated" para Dagger 2”

    Lea esto para más información: https://github.com/google/dagger/issues/95

    Básicamente, la solución es hacer lo que ya has hecho, que es incluir la biblioteca de anotación javax glassfish.

    Alex tiene razón, pero es mejor añadir dependencia JSR250 en lugar de GlassFish

     provided 'javax.annotation:jsr250-api:1.0' 

    La respuesta correcta hoy es usar una versión de daga que sea mayor que 2.1 (debido a la corrección mencionada por @tomrozb está integrada en 2.1)

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.