Gradle pone archivos duplicados en el archivo apk

Estoy usando gradle 1.10 y la versión del complemento android es 0.8.0. Mis proyectos de Android necesitan estos dos tarros: jackson-core-asl-1.9.11.jar y jackson-mapper-asl-1.9.11.jar . Añado los archivos así:

 dependencies { compile files('libs/jackson-core-asl-1.9.11.jar') compile files('libs/jackson-mapper-asl-1.9.11.jar') } 

Durante gradle build consigo un mensaje de error diciendo que estos dos archivos están duplicados en META-INF/ASL2.0 . Resolví el problema excluyendo los siguientes archivos:

 packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' } 

Tengo que excluir todos ellos porque aparentemente hay un archivo duplicado en todos ellos.

Me gustaría saber por qué se produce este problema. ¿Es un error del plugin de Android o el propio gradle? ¿Puede causar problemas la exclusión de los archivos anteriores? ¿Acabo de excluir los frascos arriba mencionados o hay algo más en esos archivos META-INF? No quiero excluir nada de lo que mi proyecto necesita

Aquí hay información del equipo de Jackson https://github.com/FasterXML/jackson-databind/issues/214

Hay una variedad de mensajes sobre esto en SO, como éste: Error al generar el archivo final: Encontró un archivo duplicado para APK: LICENSE.txt

He usado Jackson con Eclipse y Ant también (y actualmente lo estoy usando en Studio con la misma solución que estás usando), y tuve que usar zip en el comando para cambiar el nombre del archivo license.txt. Hay más información acerca de todo esto (incluyendo un ejemplo de usar zip para cambiar el nombre del archivo) en esta publicación Android Gradle plugin 0.7.0: "archivos duplicados durante el embalaje de APK" .

No he encontrado nada que indique que renombrar o excluir estos archivos tendrá consecuencias negativas, y nunca he experimentado ningún problema en cerca de 2 años de usar Jackson con Eclipse y Ant.

En primer lugar esto no es un error de gradle. Se produce en la tarea MergeJavaResourcesTransform: Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Como sabemos, APK es sólo un archivo zip, por lo que cuando se pone META-INFO / xxx en el archivo zip, si el archivo se ha agregado antes, no podemos volver a ponerlo.

Y no hay reglas de fusión para los archivos META-INFO, por lo que sólo podemos agregar en el archivo que los nombres AVISO etc

Introduzca aquí la descripción de la imagen

  • Renombrar nombre del paquete jar
  • Importar 3 SDKs, obtiene el error: Se han encontrado 3 versiones de android-support-v4.jar
  • Ant jar error: Execute failed: java.io.IOException: No se puede ejecutar el programa ... $ {aapt} ": error = 2, No hay tal archivo o directorio
  • Shrink Debug Multi Dex Component; No se puede leer dir / allclasses.jar
  • Incapaz de construir: el archivo dx.jar no se cargó desde la carpeta SDK
  • Qt Creator 3.2.1 incluyendo .jar para Android
  • En Android Studio, ¿cómo puedo cambiar un proyecto de aplicación a una biblioteca?
  • Uso de la biblioteca cliente desde los puntos finales de Cloud. Jar importación no funciona
  • El archivo .aar generado está dando clases vacías.
  • ¿Cuál es la ventaja de apklib de la jarra?
  • Android Advertencia: JAR no existe o no contiene recursos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.