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

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?

  • ¿Cómo utilizo la API no oficial de Android Market?
  • ¿Qué tipo de biblioteca de OCR Java debería usar en Android?
  • En Java, cómo obtener cadenas de días de la semana (Sun, Mon, ..., Sat) con el sistema de configuración por defecto (idioma)
  • Android PayPalActividad no en pantalla completa
  • Firmar un apk como sistema usando las claves encontradas en source / build / target / product / security /
  • Java.lang.RuntimeException: Error al entregar el resultado ResultInfo mientras se registra usando Facebook
  • SimpleDateFormat: excepción de fecha incomparable
  • "Java: el paquete org.apache.cordova no existe" al completar Cordova en Android Studio
  • 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.