configurar - Android Studio 0.4 archivos duplicados copiados en APK META-INF/LICENSE.txt
update gradle android studio (13)
Después de actualizar mi Studio de 0.3.7 a 0.4.0, no puedo compilar 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
¡¡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
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)
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 compilation process to choose the dependencies for us.
pickFirst "**"
}
}
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''
}
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'')
}
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.
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''
}
}
Solo agrego 2:
android{
packagingOptions{
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/LICENSE''
}
}
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 compilación limpia. Recomiendo comprobar si hay un error similar dentro de tu bloque de dependencia.
solo agrega
android {
packagingOptions {
exclude ''META-INF/LICENSE.txt''
}
}
en build.gradle
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