Gradle terminó con un valor de salida distinto de cero 1 (ic_launcher.png: error: archivo duplicado)

Tengo este extraño error con Gradle, ¡ayúdenme!

/.../app/build/intermediates/res/debug/drawable-xxhdpi-v4/ic_launcher.png: error: Duplicate file /.../app/build/intermediates/res/debug/drawable-xxhdpi/ic_launcher.png: Original is here. The version qualifier may be implied. Error:Execution failed for task ':app:processDebugResources'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/.../sdk/build-tools/22.0.1/aapt'' finished with non-zero exit value 1 

Antes de que funcionara normalmente, pero desde que puse classpath com.android.tools.build:gradle:1.2.2 , esto me causa errores

Según la explicación de Xavier Durochet sobre G + , se debe a que una de las bibliotecas que usas tiene su propio ic_launcher.png , que por supuesto no deberían (más sobre eso en la parte inferior).

Lo más probable es que los dos icons mencionados en el registro sean diferentes: uno es tuyo y el otro es probablemente el ícono genérico de Android que alguien olvidó eliminar de la biblioteca.

Para ver la dependencia ofensiva, presiona Ctrl + Shift + N dos veces (para la coincidencia sin proyecto) y escribe ic_launcher.png (Ver la última línea en la captura de pantalla) enter image description here

Para solucionar temporalmente el problema , agregue el calificador -v4 a sus carpetas de recursos dibujables (o mueva simplemente ic_launcher.png a *dpi-v4 si tiene sus razones) – créditos a Xavier Durochet por la solución. También puede cambiar el nombre de su icono a otra cosa y hacer el cambio correspondiente a AndroidManifest.xml

enter image description here

El verdadero problema es que la libra ofensiva lleva los icons inútiles. Las bibliotecas que tienen sus propios recursos (como ActionBarSherlock o la propia biblioteca Support v7 de Google) utilizan esquemas de nomenclatura distintivos para evitar colisiones con los nombres de sus recursos ( abs_ , abc_ ).

Los íconos del iniciador no tienen nada que ver con una biblioteca, por lo que le recomiendo que notifique al autor de la lib que está utilizando que olvidó eliminar los archivos ic_launcher.png redundantes.

También vale la pena mencionar , como Barry Carroll señaló muy precisamente en la misma discusión , esto no significa que sus recursos nunca se superpongan con los de la biblioteca: hay muchas razones legítimas para anular los recursos de una lib con los suyos (por ejemplo, cambiar el aspecto) de una actividad proporcionada por la biblioteca) y la lógica de fusión de recursos del plugin de gradle permite esto, a propósito.

Es solo que en este caso particular, el conflicto ocurre cuando la lib está atrasada en la versión de plugin android gradle (pre-1.2.2) en cuyo caso los recursos terminan en dos carpetas *dpi opcionales, con y sin el calificador -v4 ; pero en realidad están en el mismo “cubo” de recursos, por lo que el sistema los considera duplicados.

Este error pone de manifiesto la anulación ic_launcher.png inútil (en realidad, una colisión – debido a la falla) pero esta situación no es universalmente mala para otros tipos de recursos.

Es decir, a veces anulas intencionalmente el recurso de una libra y este problema seguirá causando que aparezca el mensaje de error. Esta vez no hay ningún problema real con los nombres de los recursos, por lo que la solución temporal anterior o la versión del complemento son el camino a seguir.

Tuve el mismo problema al usar una biblioteca de terceros ( RomainPiel / Shimmer-android library en Github)

Para resolverlo, moví mis archivos ic_launcher.png de la carpeta dibujable a la carpeta mipmap. Y problema resuelto

enter image description here

La degradación a com.android.tools.build:gradle:1.1.3 superó mi problema

Aquí está el método general para encontrar el problema:

correr

./gradlew build –stacktrace -info

y Encontrará los detalles de los errores. Encontré mi error: una clase duplicada causó un error de nivel SUPERIOR, y eliminar el duplicado resolverá el problema.

Para mí, un simple “proyecto limpio” y un “proyecto de reconstrucción” hicieron el truco.

Actualice a 1.2.3, pero asegúrese de que su gradle y buildToolsVersion estén idénticamente en su proyecto y los aars utilizados.

En caso de que use librerías externas donde no puede controlar la versión gradle / build: contacte al autor o verifique las fonts por su cuenta. Algunas bibliotecas tienen icons de iniciador no utilizados que causarán este conflicto. Eliminar estos icons resolverá su problema. Las fonts de nombre idéntico (por ejemplo, menu.xml) también podrían causar este problema en casos excepcionales. Una solución fácil sería cambiar el nombre de su recurso.

Simplemente cambie el nombre de ic_launcher.png a otra cosa (por ejemplo, ico_launcher.png)

En mi caso, he agregado un apóstrofo s (‘s) al archivo strings.xml. Verifique chicos por cualquier error y eliminarlo definitivamente ayudará. Es tan molesto que el IDE no puede mostrar el error correctamente, sino que todos los recursos están fuera de sincronización.

Sé que no es el caso lo que se pregunta en la pregunta, pero el error es bastante similar, es decir, la ejecución de Gradle falla.

Simplemente Rightclick on the Image, Select Refactor and select Rename Rename la Image ( Rightclick on the Image, Select Refactor and select Rename ). Resolverá el problema a medida que surja el problema ya que una de las library también está utilizando la image con el same name .

Tuve el mismo problema y lo que siguió funcionó para mí:

  • renombra tu ícono
  • agregar tools:replace="android:icon" a su etiqueta en el Manifiesto

Puede intentar solo el primer paso, pero aún tuve problemas al fusionar los archivos de manifiesto. De esta forma, debe anular el recurso que se usó en la biblioteca.

Sigue este enlace Aquí

O

Haz un cambio como este.

 repositories { maven {url "https://clojars.org/repo/"} } dependencies { compile 'frankiesardo:icepick:{{latest-version}}' **provided** 'frankiesardo:icepick-processor:{{latest-version}}' } 

La actualización al plugin 1.5.0 más nuevo de Gradle ha solucionado este problema. Actualice la siguiente secuencia de comandos en su archivo raíz build.gradle

 buildscript { ... dependencies { classpath 'com.android.tools.build:gradle:1.5.0' } ... } 

Logré desencadenar este problema mediante mayúsculas inconsistentes de extensiones de nombre de archivo. Tenía una imagen .jpg en un directorio dibujable, pero una imagen del mismo nombre de archivo pero .JPG en un directorio dibujable diferente. Los nombres y directorios de los archivos eran correctos, pero las extensiones no.