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

Después de haber actualizado mi Studio de 0.3.7 a 0.4.0, no puedo compilar mi proyecto. He encontrado una solución en stackoverflow: Archivos duplicados copiados (Android Studio 0.4.0)

He actualizado 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 

PS Desarrollar en ubuntu 13.04

Poner los dépendcies en la tapa y el paqueteOptions en el extremo trabajado 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' } } 

EDIT: Casi todas las licencias OS incluyen la obligación de "incluir una copia de la licencia" en su proyecto. Por lo tanto, esto significa que debe incluir una copia de todas las licencias de SO que utilice en sus proyectos. Al "excluir" en gradle, usted viola 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 licencia OpenSource.

Con la exclusión de los archivos license.txt como se ha propuesto anteriormente puede violar algunas licencias de código abierto, ya que es un punto común en las licencias de código abierto para aceptar agregarlo a su fuente. Mejor comprueba tus licencias opensource.

Actualización: Hasta que no haya una solución mejor, utilice

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

Como esto, al menos cumplir una parte de la obligación de licencia

solo agrega

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

En build.gradle

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

Yo estaba enfrentando el mismo problema que por nueva versión de gradle, debajo de build.gradle texto formato de trabajo para mí:

Hay dos tarros de jackson en mi carpeta de librerías.

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

Al insertar este código

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

ASEGÚRESE si por error está mostrando

> Archivos duplicados copiados en APK META-INF / LICENSE.txt

Luego añade

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

Si por error está mostrando

> Archivos duplicados copiados en APK META-INF / LICENSE

Luego añade

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

Si por error está mostrando

> Archivos duplicados copiados en APK META-INF / license.txt

Luego añade

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

En el texto corto CASE y el FORMATO del documento (.txt) es tan importante.

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

Añadiendo:

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

La solución de biniam_Ethiopia es probablemente la más segura

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

Tuve un error similar y lo resolví sin la función packingOptions() y exclude . Estaba agregando dos dependencias pero una era un subgrupo de la primera. Esto causó el error, una vez que quité uno de ellos conseguí una estructura limpia. Recomiendo verificar un error similar dentro de su bloque de dependencia.

Cuando utilice 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") 

Acabo de añadir 2:

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

Esto puede muy bien ser una mala práctica, sin embargo, si usted está incluyendo múltiples bibliotecas grandes, puede encontrarse trabajando a través de cientos de este tipo de conflictos.

A continuación se presenta una solución super-simple para estos casos:

 android { .... packagingOptions { // Allow the compilation process to choose the dependencies for us. pickFirst "**" } } 
 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

  • Analiza el proyecto Android Studio (Gradle) con Sonarqube
  • Android Studio: Las dependencias de instantáneas no se actualizan correctamente
  • El script de compilación de gradle de Android devuelve el error 137 en preDexDebug
  • Compilar, Proporcionado, APK - Android dependencia alcance
  • Android Studio Toma mucho tiempo para ejecutar la aplicación en un dispositivo real
  • Android Studio: ¿Cómo eliminar / filtrar las variantes de construcción para la depuración por defecto y la versión buildTypes y mantener sólo aquellos que utilizan buildTypes personalizado?
  • Android Studio compilador en línea que muestra errores rojos, pero la compilación con gradle funciona bien
  • Cómo crear un proyecto de plantilla para Android Studio
  • Buck vs Gradle, pro y contras para los sistemas de construcción de Android
  • Gradle error con un signo de dólar
  • Archivo bajo / res / raw no accesible en Debug buildvariant
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.