android - ecosystem - spring library
Android Gradle Archivos duplicados copiados en APK META-INF/license.txt (5)
Agregar estas líneas me ayudó.
shadowJar {
// Filtering shadow jar contents by file pattern.
exclude ''schemaorg_apache_xmlbeans/attribute/**''
exclude ''schemaorg_apache_xmlbeans/attributegroup/**''
exclude ''schemaorg_apache_xmlbeans/element/**''
exclude ''schemaorg_apache_xmlbeans/identityconstraint/**''
exclude ''schemaorg_apache_xmlbeans/javaname/**''
exclude ''schemaorg_apache_xmlbeans/modelgroup/**''
exclude ''schemaorg_apache_xmlbeans/namespace/**''
exclude ''schemaorg_apache_xmlbeans/src/**''
exclude ''schemaorg_apache_xmlbeans/system/sXML*/**''
exclude ''schemaorg_apache_xmlbeans/system/s8C3F193EE11A2F798ACF65489B9E6078/**''
exclude ''schemaorg_apache_xmlbeans/type/**''
exclude ''repackage/**''
exclude ''LICENSE.txt''
exclude ''NOTICE.txt''
exclude ''META-INF/LICENSE''
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE''
exclude ''META-INF/NOTICE.txt''
exclude ''META-INF/maven/**''
// these are only needed when handling Visio files, remove it if you would like to use Visio support
dependencies {
exclude(dependency(''com.github.virtuald:curvesapi''))
exclude(dependency(''commons-codec:commons-codec''))
}
// Relocate javax dependencies so Android does not choke
relocate ''javax.xml.namespace'', ''org.apache.poi.javax.xml.namespace''
relocate ''javax.xml.stream'', ''org.apache.poi.javax.xml.stream''
relocate ''javax.xml.XMLConstants'', ''org.apache.poi.javax.xml.XMLConstants''
}
Voy a agregar soporte de RESTful Web Service con Spring a mi aplicación de Android como se describe aquí https://spring.io/guides/gs/consuming-rest-android/ .
Esta es la configuración build.gradle de nivel superior:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:2.1.0''
}
}
allprojects {
repositories {
jcenter()
}
}
Esta es mi
app/build.gradle
config:
apply plugin: ''com.android.application''
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example"
minSdkVersion 8
targetSdkVersion 17
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt''
}
}
dependencies {
compile ''com.android.support:appcompat-v7:+''
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''org.springframework.android:spring-android-rest-template:1.0.1.RELEASE''
compile ''com.fasterxml.jackson.core:jackson-databind:2.3.2''
}
packagingOptions {
exclude ''META-INF/NOTICE'' // will not include NOTICE file
exclude ''META-INF/LICENSE'' // will not include LICENSE file
}
}
En este momento falla con el siguiente error:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task '':app:transformResourcesWithMergeJavaResForDebug''.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/license.txt
File1: user/.gradle/caches/modules-2/files-2.1/org.springframework.android/spring-android-rest-template/1.0.1.RELEASE/e132d929bd181941f79b0d63edafb8a86ae6fd33/spring-android-rest-template-1.0.1.RELEASE.jar
File2: user/.gradle/caches/modules-2/files-2.1/org.springframework.android/spring-android-core/1.0.1.RELEASE/e68f0e8e4b636ee30c4de58953be38d9b72a5e3b/spring-android-core-1.0.1.RELEASE.jar
¿Qué estoy haciendo mal y cómo solucionarlo?
Escriba debajo de las líneas en el archivo gradle de su nivel de aplicación
android {
packagingOptions {
exclude ''META-INF/DEPENDENCIES.txt''
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
exclude ''META-INF/NOTICE''
exclude ''META-INF/LICENSE''
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/notice.txt''
exclude ''META-INF/license.txt''
exclude ''META-INF/dependencies.txt''
exclude ''META-INF/LGPL2.1''
}
}
Este me funcionó:
packagingOptions {
exclude ''META-INF/DEPENDENCIES.txt''
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
exclude ''META-INF/NOTICE''
exclude ''META-INF/LICENSE''
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/notice.txt''
exclude ''META-INF/license.txt''
exclude ''META-INF/dependencies.txt''
exclude ''META-INF/LGPL2.1''
exclude ''META-INF/spring.schemas''
exclude ''META-INF/spring.tooling''
exclude ''META-INF/INDEX.LIST''
exclude ''META-INF/spring.handlers''
}
configurations {
all*.exclude module: ''classworlds''
all*.exclude module: ''commons-logging''
all*.exclude module: ''httpclient''
all*.exclude module: ''maven-artifact''
all*.exclude module: ''maven-artifact-manager''
all*.exclude module: ''maven-error-diagnostics''
all*.exclude module: ''maven-model''
all*.exclude module: ''maven-project''
all*.exclude module: ''maven-settings''
all*.exclude module: ''plexus-container-default''
all*.exclude module: ''plexus-interpolation''
all*.exclude module: ''plexus-utils''
all*.exclude module: ''wagon-file''
all*.exclude module: ''wagon-http-lightweight''
all*.exclude module: ''wagon-provider-api''
}
Si la solución en la respuesta seleccionada no soluciona su problema, intente agregar
exclude ''META-INF/ASL2.0''
también. O, básicamente, identifique el nombre del archivo duplicado y excluirlo. La adición anterior solucionó el problema para mí.
Me ayuda. Prueba este código :)
packagingOptions {
exclude ''META-INF/LICENSE''
exclude ''META-INF/NOTICE''
}