Android "ya se ha añadido a la salida" error para jar en una dependencia de proyecto

Tengo un proyecto de Android que usa gradle con otro proyecto como dependencia. Proyecto de dependencia tiene un frasco de la biblioteca. Cuando intento compilar la biblioteca del proyecto se compila dos veces y consigo el error: Error: La clase no.nordicsemi.android.log.LogContract.Application se ha agregado ya a la salida. Quite copias duplicadas.

Aquí está la estructura de carpetas con los archivos en cuestión:

>ProjectRoot >dFULibrary >libs -nrf-logger-v2.0.jar -build.gradle >Logger -build.gradle 

Esto es build.gradle para la dependencia de dFULibrary:

 apply plugin: 'com.android.library' android { compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig { applicationId "no.nordicsemi.android.dfu" minSdkVersion 18 targetSdkVersion 19 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile 'com.android.support:support-v4:+' compile files('libs/nrf-logger-v2.0.jar') } 

Esto es build.gradle para Logger (proyecto principal):

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.14.4' } } apply plugin: 'com.android.application' android { compileSdkVersion 20 buildToolsVersion '20' sourceSets { main { java.srcDirs "src/main/java" res.srcDirs "src/main/res" assets.srcDirs = ['assets'] } androidTest.setRoot('tests') androidTest.java.srcDirs = ['tests/src'] } dexOptions { preDexLibraries = false } } dependencies { compile 'com.android.support:support-v4:+' compile project':dFULibrary') } 

No.nordicsemi.android.log.LogContract.Application se encuentra la clase de nrf-logger-v2.0.jar ¿Por qué se incluye dos veces y cómo puedo asegurarme de que no?

ADICIÓN

Esto es lo que devuelven las dependencias de ./gradlew:

 _debugApk - ## Internal use, do not manually configure ## \--- project :dFULibrary _debugCompile - ## Internal use, do not manually configure ## +--- project :dFULibrary \--- com.android.support:support-v4:+ -> 21.0.2 \--- com.android.support:support-annotations:21.0.2 _releaseApk - ## Internal use, do not manually configure ## \--- project :dFULibrary _releaseCompile - ## Internal use, do not manually configure ## +--- project :dFULibrary \--- com.android.support:support-v4:+ -> 21.0.2 \--- com.android.support:support-annotations:21.0.2 androidJacocoAgent - The Jacoco agent to use to get coverage data. \--- org.jacoco:org.jacoco.agent:0.7.1.201405082137 FAILED androidJacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks. \--- org.jacoco:org.jacoco.ant:0.7.1.201405082137 FAILED compile - Classpath for compiling the main sources. \--- project :dFULibrary provided - Classpath for only compiling the main sources. \--- com.android.support:support-v4:+ -> 21.0.2 \--- com.android.support:support-annotations:21.0.2 

Quité todas las líneas que no tenían dependencias.

EDITAR salida # 2 desde ./gradlew androidDependencies

 :DFULibrary:androidDependencies debug \--- LOCAL: nrf-logger-v2.0.jar debugTest +--- LOCAL: nrf-logger-v2.0.jar \--- debug \--- LOCAL: nrf-logger-v2.0.jar release \--- LOCAL: nrf-logger-v2.0.jar :nRFToolbox:androidDependencies debug +--- LOCAL: achartengine-1.1.0.jar \--- nrfToolbox:DFULibrary:unspecified \--- LOCAL: nrf-logger-v2.0.jar debugTest No dependencies release +--- LOCAL: achartengine-1.1.0.jar \--- nrfToolbox:DFULibrary:unspecified \--- LOCAL: nrf-logger-v2.0.jar BUILD SUCCESSFUL 

Bingo, lo encontré.

Sólo fue interesante y traté de encontrar su proyecto en Internet. Y comenzó mi investigación …. :).

El problema está oculto en nrf-logger-v2.0.jar . Contiene archivos .java y .class . La solución es eliminar todos los archivos .java de él.

Yo hice ese Comandante Total. Pasos:

  • nrf-logger-v2.0.jar en nrf-logger-v2.0.zip ;
  • Ir dentro y quitar todos los archivos .java ;
  • Renombrar el archivo de nuevo a jar ;
  • gradlew clean build o Build-Rebuild en Android Studio
  • Voila

Debe intentar excluir la dependencia duplicada de la siguiente manera:

 compile (project: ':dFULibrary'){ exclude group: 'org.jacoco' } 

Usted debe reemplazar:

 compile project':dFULibrary' 

Con el código de arriba.

  • Error de Gradle después de actualizar Android Studio a 1.5
  • gradle 2.0.0 beta 7 missing
  • Módulo de Android Studio que depende de las pruebas de otro módulo
  • Cómo crear un proyecto de plantilla para Android Studio
  • ¿Cómo agrego archivos .jar en Android Studio
  • Causa de "Esta aplicación contiene código que intenta omitir las protecciones de seguridad de Android"
  • EXCEPCIÓN INESPERADA DE SUPERIOR NIVEL: com.android.dex.DexException: Múltiples archivos dex definen
  • Cómo configurar la versión de la aplicación de Android por número de construir en Jenkins?
  • No se puede actualizar build.gradle para usar la biblioteca de soporte 23.0.1
  • La prueba de instrumentación falla al azar con multidexado activado
  • Android Studio: Gradle - build falla - La ejecución falló para la tarea ': dexDebug'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.