Cómo configurar dagger + gradle

Tengo un proyecto y la migración a la dependencia gradle, pero me encuentro con un problema tratando de configurar la daga con gradle, la primera vez que compilar funciona perfectamente (o si limpio), pero si lo intento dos veces, entonces me da error como :

Error: (13, 14) error: duplicate class: com.myapp.android.application.InjectingApplication $ InjectingApplicationModule $$ ModuleAdapter

Intento usar el complemento de android-apt y configurado como en la documentación pero todavía consigo el mismo error ( https://bitbucket.org/hvisser/android-apt/overview )

También intento usar dependencia proporcionada en lugar como en este tutorial ( https://github.com/frankdu/android-gradle-dagger-tutorial ) de compilar pero ninguna suerte hasta ahora.

¿Tienes alguna idea de cómo configurar la daga y gradle?

EDITAR

Mi build.gradle se ve así

apply plugin: 'android' apply plugin: 'android-apt' android { compileSdkVersion 19 buildToolsVersion "19.0.2" defaultConfig { minSdkVersion 9 targetSdkVersion 19 packageName "com.myapp.android" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile project(':volley') apt 'com.squareup.dagger:dagger-compiler:1.2.0' compile 'com.squareup.dagger:dagger:1.2.0' } 

Y mi nivel superior build.gradle se parece a esto

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2' } } allprojects { repositories { mavenCentral() } } 

EDIT # 2:

Intenté con proporcionado otra vez como @Marco sugirió ninguna suerte, no sé si hay una biblioteca o una versión de gradle que podría causar este problema, estoy utilizando actualmente 1.10. En el lado brillante he encontrado una manera de hacerlo funcionar, pero me encantaría hacerlo con sólo añadir la declaración proporcionada. La forma en que lo hice es la vieja manera:

Definir configuración apt

 configurations { apt } 

Add Dagger compilador lib

 apt 'com.squareup.dagger:dagger-compiler:1.2.0' 

Y poner en práctica este gancho a applicationVariant que por lo que sé android-apt hace algo similar. ¿Esto tiene sentido? ¿por qué?

 def getSourceSetName(variant) { return new File(variant.dirName).getName(); } android.applicationVariants.each { variant -> def aptOutputDir = project.file("build/source/apt") def aptOutput = new File(aptOutputDir, variant.dirName) android.sourceSets[getSourceSetName(variant)].java.srcDirs+= aptOutput.getPath() variant.javaCompile.options.compilerArgs += [ '-processorpath', configurations.apt.getAsPath(), '-s', aptOutput ] variant.javaCompile.source = variant.javaCompile.source.filter { p -> return !p.getPath().startsWith(aptOutputDir.getPath()) } variant.javaCompile.doFirst { aptOutput.mkdirs() } } 

Estoy usando daga en esta muestra Volley Ejemplos . No estoy experimentando ningún problema con la daga y estoy incluyendo el compilador usando:

 provided 'com.squareup.dagger:dagger-compiler:1.2.1' 

Es trabajo para mí.

Paso 1:
Añadir este código a usted build.gradle

 provided 'com.squareup.dagger:dagger-compiler:1.2.2' 

Paso 2:
Agregue la carpeta de código fuente app/gen a su proyecto. Así que puede agregar este código a usted app/build.gradle ( src/main/java es la carpeta de código del proyecto principal)

 sourceSets.main { java.srcDirs = ['src/main/java', 'gen'] } 

Actualizar el complemento de Gradle a (classpath de raíz / gradle) 'com.android.tools.build:gradle:2.2.0'

App / gradle

 compile 'com.google.dagger:dagger:2.4' annotationProcessor 'com.google.dagger:dagger-compiler:2.4' 
  • Cómo recuperar la ruta a ADB en build.gradle
  • Cordova Android - ERROR construyendo una de las plataformas: Código de error 1 para comando:
  • ¿Cómo hacer referencia a paquetes de dependencias en una Biblioteca de Android como .aar?
  • Gradle buildConfigField con una variable entera
  • Filtrado de recursos del monolito de Play Services para hacer su APK más pequeño
  • Leer versionName de build.gradle en bash
  • Cómo hacer que mi archivo de compilación de Gradle utilice siempre las nuevas herramientas de compilación de Android disponibles
  • ¿Cómo tener dos sabores de construcción heredar de un sabor de raíz en Android Studio?
  • Cómo construir un APK 'release' en Android Studio?
  • El paquete no existe cuando se utiliza una aplicación independiente como dependencia
  • Firma de android apk con gradle-experimental: 0.2.0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.