Android Studio 0.4 archivos duplicados copiados en APK META-INF / LICENSE.txt

Después de actualizar mi Studio de 0.3.7 a 0.4.0, no puedo comstackr mi proyecto. Encontré una solución en stackoverflow: archivos duplicados copiados (Android Studio 0.4.0)

Actualicé mi proyecto a gradle 0.7. +, Pero no sé dónde debo poner las siguientes cadenas:

android { packagingOptions { exclude 'META-INF/LICENSE.txt' } } 

Mi logcat: registro

 Execution failed for task ':Prog:packageDebug'. > Duplicate files copied in APK META-INF/LICENSE.txt File 1: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar File 2: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar 

Desarrollar PS en ubuntu 13.04

Poner las dependencias en la parte superior y las packageOptions al final funcionó para mí.

 apply plugin: 'android'. 

Aquí está mi build.gradle completo en la carpeta de la aplicación.

 dependencies { compile 'com.android.support:support-v4:+' compile files('libs/apache-mime4j-0.6.jar') compile files('libs/httpmime-4.0.jar') } android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { minSdkVersion 7 targetSdkVersion 10 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- rules.txt' } 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' } } 

EDITAR: Casi todas las licencias de SO incluyen la obligación de “incluir una copia de la licencia” en su proyecto. Esto significa que debe incluir una copia de todas las licencias de sistema operativo que utiliza en sus proyectos. Al “excluirlos” en Gradle, violas las licencias.

Excluirlos del proyecto podría no ser la mejor opción. Gracias RS por la información.

¡¡Atención!! Posible violación de la licencia de OpenSource.

Al excluir los archivos de license.txt como se propuso anteriormente, puede violar algunas licencias de código abierto, ya que es un punto común en las licencias de código abierto para acordar agregarlo a su fuente. Mejor revise sus licencias de código abierto.

Actualización: hasta que haya una mejor solución, use

 packagingOptions { pickFirst 'META-INF/license.txt' } 

así, al menos, cumple una parte de la obligación de licencia

solo agrega

 android { packagingOptions { exclude 'META-INF/LICENSE.txt' } } 

en build.gradle

Puede solucionarlo agregando el siguiente código a project/app/build.gradle :

 android { // Fixed build error : Duplicate files copied in APK META-INF/xxx packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/LICENSE.txt' } } 

Me enfrentaba al mismo problema que para la nueva versión de gradle, el formato de texto Below build.gradle funciona para mí:

Hay dos jarras jackson en mi carpeta libs.

 android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.omtlab.myapplication" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'libs/jackson-core-asl-1.9.13.jar' exclude 'libs/jackson-mapper-asl-1.9.13.jar' exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } } dependencies { //compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:21.0.3' compile files('libs/jackson-core-asl-1.9.13.jar') compile files('libs/jackson-mapper-asl-1.9.13.jar') } 

Agregar:

 packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' } 

funcionó para mí, la solución de biniam_Ethiopia es probablemente la más segura

Al insertar este código

 android{ packagingOptions{ exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' } } 

ASEGÚRESE si se muestra un error

> Copiar archivos duplicados en APK META-INF / LICENSE.txt

Luego añade

  android{ packagingOptions{ exclude 'META-INF/LICENSE.txt' } } 

si por error está mostrando

> Copiar archivos duplicados en APK META-INF / LICENSE

Luego añade

  android{ packagingOptions{ exclude 'META-INF/LICENSE' } } 

si por error está mostrando

> Copiar archivos duplicados en APK META-INF / license.txt

Luego añade

  android{ packagingOptions{ exclude 'META-INF/license.txt' } } 

En texto breve CASE y document FORMAT (.txt) es tan importante.

(este error existe en Android Studio 1.1.0 también)

Esto te ayudará a resolver el problema

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

Solo agrego 2:

 android{ packagingOptions{ exclude 'META-INF/LICENSE.txt' exclude 'META-INF/LICENSE' } } 
 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' } 

Agregue el archivo build.gradle y el proyecto syn

Tuve un error similar y lo resolví sin las packingOptions() y exclude . Estaba agregando dos dependencias, pero una era un subgrupo de la primera. Esto causó el error, una vez que eliminé uno de ellos obtuve una comstackción limpia. Recomiendo comprobar si hay un error similar dentro de tu bloque de dependencia.

Cuando use java-jwt y jackson-core juntos, use lo siguiente:

 exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.properties") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-annotations/pom.xml") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.properties") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.xml") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.properties") exclude("META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.xml") 

Esto puede ser una mala práctica, sin embargo, si incluye múltiples bibliotecas grandes, puede encontrarse trabajando en cientos de este tipo de conflictos.

A continuación se enumera una solución super simple para tales casos:

 android { .... packagingOptions { // Allow the comstacktion process to choose the dependencies for us. pickFirst "**" } }