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 Studio siempre excluye la carpeta de compilación / fuente
- Android studio 2.0 Vista previa 8 con gradle plugin 2.0.0-alhpa8, advertencia de memoria a pesar de tamaño de montón a 4Gb
- Incremento exponencial del tiempo de compilación de Android gradle
- Uso de tipos de compilación en Gradle para ejecutar la misma aplicación que utiliza ContentProvider en un dispositivo
- "Error: Atributo" estilo "ya se ha definido" error después de añadir facebook sdk de Maven
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
- Eclipse utiliza la variable PATH antigua para ejecutar el proceso de línea de comandos en la tarea Gradle?
- La generación de Gradle es muy lenta después de añadir la biblioteca de Android Design Support
- Excluir o anular un manifiesto AAR
- Gradle no puede encontrar el símbolo de la clase interna después de proguard
- ¿Cómo fijar el applicationId diferente para cada combinación del sabor usando flavorDimensions?
- Cómo utilizar opencv en android studio utilizando gradle build tool?
- Crear una biblioteca con dependencias en android
- Gradle 0.9. + / 0.9.2 error: No se puede cargar la clase 'com.android.builder.testing.api.DeviceProvider'
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