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.txt
lugar deNOTICE.txt
? Aunque el error se ve realmente diferente del que ocurre la exclusión. ¿Tienes unMETA-INF/notice.txt
archivo 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 hayresources
directorio 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 assemble
y observe los archivos que están duplicados y excluya usando:Respuesta larga:
Ejecute la
assemble
tarea gradle desde la línea de comandos para obtener resultados detallados:./gradlew assemble || gradle assemble
Esto 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