Android Studio. Recibo este tipo de error durante la ejecución de la aplicación.
Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt
build.gradle
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'com.octo.android.robospice:robospice:1.4.11'
compile 'com.octo.android.robospice:robospice-spring-android:1.4.11'
}
¿Cómo puedo solucionar este error?
EDITADO
Estas opciones de exclusión resolvieron mi problema:
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
android
android-gradle-plugin
Robertas Setkus
fuente
fuente

Respuestas:
Creo que la comparación de cadenas distingue entre mayúsculas y minúsculas. prueba con
exclude 'META-INF/notice.txt'fuente
notice.txtlugar deNOTICE.txt? Aunque el error se ve realmente diferente del que ocurre la exclusión. ¿Tienes unMETA-INF/notice.txtarchivo en tusrc/main/resources/?exclude 'META-INF/notice.txt'pero luego la consola me lo solicitóDuplicate files copied in APK META-INF/NOTICE.txt. Extraño, ¿no es así? No hayresourcesdirectorio debajoC:\PathToAndroidStudioProject\src\main.exclude 'META-INF/notice.txt'yexclude 'META-INF/NOTICE.TXT', ¿funciona?packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' }Creo que debe incluir solo estas opciones en build.gradle :
fuente
Respuesta corta:
Vea la salida detallada de gradle usando
gradle assembley observe los archivos que están duplicados y excluya usando:Respuesta larga:
Ejecute la
assembletarea gradle desde la línea de comandos para obtener resultados detallados:./gradlew assemble || gradle assembleEsto muestra automáticamente qué excluir:
Ver esta parte en la salida:
Incluso muestra la lista de dependencias que originaron archivos duplicados (LICENCIA). Vea las líneas con Origin # en la salida.
fuente
Agregue esto en su archivo build.gradle ...
Me gusta esto...
fuente
Es más de un error, tienes razón.
Debajo
apply plugin: 'android-library'Agrega esto ::
android { packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } }El primer error es por archivos duplicados, el segundo es por archivos de LICENCIA y AVISO. Funcionará después
EDITAR :: Vea mi publicación aquí sobre la identificación de los problemas :: Android Gradle plugin 0.7.0: "archivos duplicados durante el empaquetado de APK"
fuente
esto funciona para mi
fuente
Curiosamente, cuando borré esta línea de gradle, funcionó:
fuente
Tuve que jugar un poco para encontrar la ubicación correcta para las opciones de empaquetado. Resolviendo el problema del archivo duplicado por un conflicto entre jackson-core: 2.2.2 y jackson-databind: 2.2.2 También el DSL parece haber cambiado recientemente. Así que en el reciente Android Studio 1.4.1 con buildTools 23 tienes que poner Android. opciones de empaque en el mismo nivel que compileOptions Y NO dentro de ningún modelo {android { braces!
fuente