Dagger ejemplo construido a través de eclipse falla con 'Asegúrese de que la generación de código se ejecutó para este módulo.'
Estoy usando Dagger para la inyección de la dependencia en Android, usando Eclipse para construir. He clonado android-activity-graphs para usar como ejemplo.
He configurado mi entorno de acuerdo con staxgr desde https://github.com/square/dagger/issues/126
Estos son mis libs: dagger-1.1.0.jar , dagger-compiler-1.1.0.jar y javax.inject.jar
- Daga que no genera componentes para / clase de prueba
- Dagger2: Error cuando dos componentes tienen la misma firma de método de inyección
- ¿Cuándo usar Dagger en la aplicación Android?
- Dagger 2, módulos de biblioteca y @Singleton
- Dagger 2.10 Subcomponentes y constructores de Android
Y por último, he cambiado las carpetas de origen en Eclipse para apuntar a src/main/java
(en lugar de sólo src/
) para que Eclipse detecte los archivos relacionados a través de la palabra clave package.
El proyecto se genera, pero falla inmediatamente cuando se ejecuta con esta excepción:
Caused by: java.lang.IllegalStateException: Module adapter for class com.example.dagger.activitygraphs.AndroidModule could not be loaded. Please ensure that code generation was run for this module. at dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:41) at dagger.internal.Modules.getAllModuleAdapters(Modules.java:43) at dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:167) at dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:134) at dagger.ObjectGraph.create(ObjectGraph.java:126) at com.example.dagger.activitygraphs.DemoApplication.onCreate(DemoApplication.java:29) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4391)
¿Cómo puedo obtener ejemplos de Dagger para trabajar a través de eclipse?
- ¿Cómo organizas tus módulos y componentes Dagger 2?
- ¿Es posible usar Dagger en el proyecto de la biblioteca?
- No se puede encontrar la clase de símbolo "Generated" para Dagger 2
- Dagger 2: Inyectar el parámetro introducido por el usuario en el objeto
- No se puede proporcionar sin un constructor @Inject o de un método @ Proporcionado-anotado
- Inyectar base de datos en un ContentProvider con daga
- ¿Se puede hacer una inyección de daga en un método estático?
- Dagger código que da NoClassDefFoundError en las pruebas de instrumentación de Android, pero funciona en la aplicación normal
El problema es que me falta la biblioteca javawriter . Además, DEBE usar la versión 2.2.1 de javawriter y NO la última que es 2.3.0 (esto probablemente cambiará, pero sigue siendo cierto en el momento de escribir esto el 27/11/2013). El enlace proporcionado debe llevarlo al lugar correcto. Por favor, doble triple comprobar esto, por un total de seis veces. También incluiré una lista de otras razones por las que podría ver este mensaje.
En primer lugar, asegúrese de verificar todas estas casillas de verificación.
Proyecto -> Propiedades -> Compilador de Java -> Habilitar configuración específica del proyecto
Proyecto -> Propiedades -> Compilador Java -> Procesamiento de Anotación -> Habilitar Configuración Específica del Proyecto
Proyecto -> Propiedades -> Compilador de Java -> Procesamiento de anotaciones -> Ruta de fábrica -> Habilitar ajustes específicos del proyecto.
A continuación, en la misma pantalla, haga clic en "Añadir tarros" y agregue: javawriter-2.2.1.jar, dagger-1.1.0.jar, dagger-compiler-1.1.0.jar y javax.inject.jar en esta lista también Para un total de cuatro frascos.
Esos cuatro frascos deben estar en una carpeta llamada 'libs' en la ruta principal de su proyecto.
Si está usando bibliotecas y desea usar Dagger for DI en esas bibliotecas, tendrá que hacer los pasos anteriores en esos proyectos también.
- Conectividad Ethernet a través de programación (Android) (dispositivo enraizado)
- Enviar el mensaje Whatsapp a un contacto específico