restful library ecosystem android gradle spring-android

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'' }