web-dev-qa-db-fra.com

Gradle terminé avec une valeur de sortie 1 différente de zéro

J'ai eu cette étrange erreur avec Gradle, aidez-moi s'il vous plaît!

/.../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

Avant cela fonctionnait normalement, mais depuis que j'ai mis classpath com.Android.tools.build:gradle:1.2.2 , cela me cause des erreurs

75
Back Packer

Rétrogradation vers com.Android.tools.build:gradle:1.1.3 sloved my issue

19
Back Packer

Selon l'explication de Xavier Durochet sur G + , c'est dû à l'une des bibliothèques que vous utilisez ayant son propre code ic_launcher.png - ce qu'elles ne devraient bien sûr pas (plus à ce sujet en bas).

Il est probable que les deux icônes mentionnées dans le journal sont différentes: l'une est à vous et l'autre est probablement l'icône générique Android que quelqu'un a oublié de supprimer de la bibliothèque.

Pour voir la dépendance incriminée, appuyez sur Ctrl + Shift + Ndeux fois (pour la correspondance non-projet) et tapez ic_launcher.png (voir la dernière ligne de la capture d'écran) enter image description here

Pour contourner temporairement le problème, ajoutez le qualificatif -v4 à vos dossiers de ressources pouvant être dessinés (ou déplacez simplement ic_launcher.png vers *dpi-v4 si vous avez vos raisons) - crédits à Xavier Durochet pour la solution. Vous pouvez également renommer votre icône en quelque chose d'autre et apporter la modification correspondante en AndroidManifest.xml

enter image description here

Le vrai problème est que la bibliothèque en cause porte les icônes inutiles. Les bibliothèques disposant de leurs propres ressources (comme ActionBarSherlock ou la propre bibliothèque Support v7 de Google) utilisent des schémas de nommage distincts pour éviter les conflits avec les noms de vos ressources (abs_, abc_).

Les icônes Lanceur n’ayant aucune raison d’être dans une bibliothèque, je vous encourage à informer l’auteur de la bibliothèque que vous utilisez qu’il a oublié de supprimer les fichiers redondants ic_launcher.png.

Il faut aussi mentionner, comme Barry Carroll a noté très précisément dans la même discussion , cela ne signifie pas que vos ressources ne doivent jamais chevaucher celles de la bibliothèque: il y a beaucoup de legit raisons de remplacer les ressources d'une bibliothèque par les vôtres (par exemple, changer l'apparence d'une activité fournie par une bibliothèque) et par la logique de fusion des ressources du plug-in Gradle le permet volontairement.

Dans ce cas particulier, le conflit survient lorsque la bibliothèque est en retard sur la version du plugin Gradle Android (antérieure à 1.2.2), auquel cas les ressources se retrouvent dans deux dossiers *dpi différents - avec et sans le qualificatif -v4; mais ils sont en fait dans la même "ressource" que le système les considère comme des doublons.

Ce pépin fait fait apparaître le remplacement inutile ic_launcher.png (en fait, une collision - due au pépin), mais cette situation n’est pas universellement mauvaise pour d’autres types de ressources.

C'est à dire. Parfois, vous surchargez intentionnellement la ressource d'une bibliothèque et ce petit problème provoquera toujours le message d'erreur. Cette fois-ci, le nom des ressources ne pose pas vraiment de problème. La solution temporaire ci-dessus ou le blocage de la version du plug-in sont la solution.

111
Ivan Bartsov

J'ai eu le même problème en utilisant une bibliothèque tierce. (Bibliothèque RomainPiel/Shimmer-Android sur Github)

Pour le résoudre, j'ai déplacé mes fichiers ic_launcher.png d'un dossier pouvant être dessiné vers un dossier mipmap. Et problème résolu.

enter image description here

27
Can Uludağ

Voici la méthode générale pour trouver le problème: 

Courir 

./gradlew build --stacktrace --info

et Vous trouverez les détails des erreurs ... J'ai trouvé mon erreur: une classe en double a provoqué une erreur TOP-Level, et supprimer celle en double résoudra le problème.

14
herbertD

Pour moi, un simple "projet propre" et un "projet de reconstruction" ont fait l'affaire.

10
Thiago Queiroz

Effectuez une mise à niveau vers la version 1.2.3, mais assurez-vous que votre version et buildToolsVersion sont identiques dans votre projet et les fichiers utilisés.

Si vous utilisez des bibliothèques externes où vous ne pouvez pas contrôler la version de gradle/build: Contactez l’auteur ou vérifiez les sources vous-même. Certaines bibliothèques ont des icônes de lanceur inutilisées qui provoqueront ce conflit. Supprimer ces icônes résoudra votre problème. Des sources portant le même nom (par exemple, menu.xml) peuvent également provoquer ce problème dans de rares cas. Une solution de contournement simple consisterait à renommer votre ressource.

2

Dans mon cas, j'ai ajouté des apostrophes (s) au fichier strings.xml . Vérifiez que les gars ne détectent pas une telle erreur et supprimez-les, cela aidera certainement . C'est tellement ennuyeux que le IDE peut Ne pas afficher correctement l'erreur rend toutes les ressources désynchronisées .. 

Je sais que ce n'est pas le cas qui est posé à la question, mais l'erreur est tout à fait la même, c'est-à-dire que l'exécution de Gradle échoue.

1
MobileEvangelist

Simplement Rename la Image (Rightclick on the Image, Select Refactor and select Rename). Cela résoudra le problème car le problème est survenu car l’un des library utilise également le image avec le same name.

1

Il suffit de renommer ic_launcher.png en quelque chose d'autre (par exemple ic_launcher.png).

1
Lucy Fair

J'ai eu le même problème et ce qui suit a fonctionné pour moi:

  • renommer votre icône 
  • ajoutez tools:replace="Android:icon" à votre balise <application> dans le manifeste

Vous pouvez essayer seulement la première étape, mais je rencontrais toujours des problèmes lors de la fusion des fichiers manifestes. De cette façon, il convient de remplacer toute ressource utilisée dans la bibliothèque.

1
Ayoub

J'ai réussi à déclencher ce problème par une capitalisation incohérente des extensions de nom de fichier. J'avais une image .jpg dans un répertoire, mais une image du même nom de fichier, mais .JPG dans un autre répertoire. Les noms de fichiers et les répertoires étaient exacts, mais les extensions ne l'étaient pas.

0
Peter McLennan

Mise à jour vers le dernier plugin Gradle 1.5.0 sloved ce problème. Mettre à jour le script suivant dans votre fichier racine build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.Android.tools.build:gradle:1.5.0'
    }
    ...
}
0
codezjx

Suivez ce lien Ici

Ou

Faire le changement comme ça.

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