android - una - Error:: archivos duplicados durante el empaquetado de APK
eliminar archivos duplicados sin programas (8)
Respuesta corta:
Vea la salida de gradle detallada usando gradle assemble
y anote los archivos que están duplicados y excluya usando:
android {
packagingOptions {
exclude ''META-INF/notice.txt''
}
}
Respuesta larga:
Ejecute la tarea assemble
gradle desde la línea de comandos para obtener resultados detallados:
./gradlew assemble || gradle assemble
Esto muestra automáticamente qué excluir:
studioWorkspace/CCDroid git:(master) ✗ ± ./gradlew assembleDebug
:app:preBuild
:app:compileDebugNdk UP-TO-DATE
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:app:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preDexDebug UP-TO-DATE
:app:dexDebug UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:validateDebugSigning
:app:packageDebug
Error: duplicate files during packaging of APK /Users/shubham/code/studioProjects/CCDroid/app/build/outputs/apk/app-debug-unaligned.apk
Path in archive: LICENSE
Origin 1: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
Origin 2: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-all/1.8.4/5c97d8b6e715ed941aeb93d6fc401ab3eb18a566/mockito-all-1.8.4.jar
You can ignore those files in your build.gradle:
android {
packagingOptions {
exclude ''LICENSE''
}
}
:app:packageDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task '':app:packageDebug''.
> Duplicate files copied in APK LICENSE
File 1: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
File 2: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 11.863 secs
Vea esta parte en el resultado:
android {
packagingOptions {
exclude ''LICENSE''
}
}
Incluso muestra la lista de dependencias que originaron archivos duplicados (LICENCIA). Vea las líneas con Origin # en la salida.
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''
}
Agregue esto en su archivo build.gradle ...
packagingOptions {
exclude ''META-INF/NOTICE'' // will not include NOTICE file
exclude ''META-INF/LICENSE'' // will not include LICENSE file
exclude ''META-INF/DEPENDENCIES'' // will not include LICENSE file
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
}
Me gusta esto...
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "your package name"
minSdkVersion 14
targetSdkVersion 25
versionCode 30
versionName "3.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
packagingOptions {
exclude ''META-INF/NOTICE'' // will not include NOTICE file
exclude ''META-INF/LICENSE'' // will not include LICENSE file
exclude ''META-INF/DEPENDENCIES'' // will not include LICENSE file
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
}
}
Creo que debes incluir solo estas opciones en build.gradle :
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/NOTICE''
exclude ''META-INF/LICENSE''
}
Creo que la comparación de cadenas distingue entre mayúsculas y minúsculas. intente con exclude ''META-INF/notice.txt''
Curiosamente, cuando borré esta línea de Gradle, funcionó:
compile ''org.apache.commons:commons-lang3:3.3.1''
Es más de un error, tienes razón.
En el apply plugin: ''android-library''
add this :: android { packagingOptions { exclude ''META-INF/ASL2.0'' exclude ''META-INF/LICENSE'' exclude ''META-INF/NOTICE'' } }
El primer error es por duplicados de archivos, el segundo es por archivos de LICENCIA y AVISO. Funcionará después
EDITAR :: Ver mi publicación aquí sobre la identificación de los problemas :: Android Gradle plugin 0.7.0: "archivos duplicados durante el empaquetado de APK"
Tuve que jugar un poco para encontrar la ubicación correcta para el packagingOptions. Resolviendo el problema del archivo duplicado para 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 debes poner Android. opciones de empaque en el mismo nivel que compileOptions AND NOT dentro de cualquier modelo {android { llaves!
model {
android {
compileSdkVersion = 21
buildToolsVersion = "23.0.1"
defaultConfig.with {
applicationId = "com.android.sensorgraph"
minSdkVersion.apiLevel = 21
targetSdkVersion.apiLevel = 22
} }
android.packagingOptions {
exclude ''META-INF/LICENSE''
exclude ''META-INF/NOTICE''
}
compileOptions.with {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
}
esto funciona para mí
android {
...
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''
exclude ''META-INF/notice.txt''
exclude ''META-INF/license.txt''
}
}