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:
- ¿Por qué gradle android plugin no genera dependencias para intellij idea módulo
- Reemplace dinámicamente applicationId en el archivo_paths.xml
- Gradle Build Android Project Error "No se pudo resolver todas las dependencias"
- Android Gradle Jacoco: instrumentación offline para pruebas de integración
- Intellij Idea log GradleConnectionException: No se pudo ejecutar la compilación usando la instalación de Gradle mientras se construye
>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
- Android Studio: No se pudo encontrar: 'com.android.support:support-v4:19.1.0'
- ¿Cómo obtener Gradle 1.9 en android-studio 0.3.6 corriendo?
- La aplicación no se ejecutará en el nuevo Android Studio 2.2 con gradle 2.14.1 con Instant Run activado
- Error: Gradle: Error de ejecución de la tarea ': app: crashlyticsCleanupResourcesDebug'. > Error de Crashlytics Developer Tools
- Android Gradle Apache HttpClient no existe?
- ¿Puedo establecer un indicador BuildConfig que devuelve si un apk se ha construido o no con la tarea gradled `connectedAndroidTest`?
- La ejecución falló para la tarea ': app: transformClassesWithDexForDebug' al implementar Google inicie sesión en Android
- Problemas con pruebas de instrumentos Espresso en los dispositivos de tiempo de ejecución de Dalvik
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
ennrf-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.
- Configuración de RadioButton.setChecked con varios fragmentos
- Anidar las pestañas en Android 4 con la biblioteca de soporte (ActionBarSherlock)