L'exécution a échoué pour l'application de la tâche: mergeDebugResources 'Crunching Cruncher… échec du png

103

J'ai ajouté quelques images au format * .png à mon répertoire drawable et les ai liées aux mises en page. Mais chaque fois que j'ai essayé de le construire, une erreur apparaît

"... Crunching Crunsher ... png a échoué"

Voici la sortie de la console:

app:mergeDebugResources
AAPT out(1561599) : No Delegate set : lost message:Done
AAPT out(12956469) : No Delegate set : lost message:Done
AAPT out(20612543) : No Delegate set : lost message:Crunching             C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\bt_meeting_focused.png
AAPT out(11030156) : No Delegate set : lost message:Crunching     C:\Dev\StudioProjects\test\android\app\src\main\res\mipmap-mdpi\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:Crunching single PNG file: C:\Dev\StudioProjects\test\android\app\src\main\res\mipmap-    mdpi\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:    Output file:     C:\Dev\StudioProjects\test\android\app\build\intermediates\res\debug\mipmap-mdpi-v4\ic_launcher.png
AAPT out(11030156) : No Delegate set : lost message:Done
AAPT err(11030156): libpng error: Not a PNG file
AAPT out(20612543) : No Delegate set : lost message:Crunching single PNG     file:     C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\bt_meeting_focused.png
AAPT out(20612543) : No Delegate set : lost message:    Output file:     C:\Dev\StudioProjects\test\android\app\build\intermediates\res\debug\drawable\b    t_meeting_focused.png
AAPT out(20612543) : No Delegate set : lost message:Done
AAPT err(20612543): libpng error: Not a PNG file
AAPT err(1561599): libpng error: Not a PNG file
AAPT err(12956469): libpng error: Not a PNG file

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher uhr.png failed, see logs

* 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: 14.598 secs
Executing tasks: [clean, :app:generateDebugSources,     :app:generateDebugAndroidTestSources]

Configuration on demand is an incubating feature.
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportSupportV42220Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
AAPT out(14080484) : No Delegate set : lost message:Done
AAPT out(9206750) : No Delegate set : lost message:Done
AAPT out(25360025) : No Delegate set : lost message:Done
AAPT err(25360025): libpng error: Not a PNG file
AAPT err(14080484): libpng error: Not a PNG file
AAPT out(6423170) : No Delegate set : lost message:Crunching C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\anfrage_senden_.png
AAPT err(6423170): libpng error: Not a PNG file
AAPT out(6423170) : No Delegate set : lost message:Crunching single PNG file:     C:\Dev\StudioProjects\test\android\app\src\main\res\drawable\anfrage_senden_.png
AAPT out(6423170) : No Delegate set : lost message: Output file: C:\Dev\StudioProjects\test\android\app\build\intermediates\res\debug\drawable\a    nfrage_senden_.png
AAPT out(6423170) : No Delegate set : lost message:Done
AAPT err(9206750): libpng error: Not a PNG file

Process list not empty
:app:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Crunching Cruncher uhr.png failed, see logs

* 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: 4.325 secs

J'ai essayé de nettoyer le projet, de le reconstruire, de rafraîchir les dépendances via "gradlew clean build --refresh-dependencies", rien n'a fonctionné. J'ai vérifié les dépendances dans le fichier build.gradle mais rien ne semble créer l'erreur.

   apply plugin: 'com.android.application'
   android {
   compileSdkVersion 22
   buildToolsVersion "22.0.1"
   compileOptions.encoding = 'windows-1251'

   defaultConfig {
       applicationId "com.example.benutzer.test"
       minSdkVersion 16
       targetSdkVersion 22
       versionCode 1
       versionName "1.0"
   }
   buildTypes {
    release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'),    'proguard-rules.pro'
       }
   }
   }

   dependencies {
   compile 'com.android.support:support-v4:22.2.0'
  }

Avez-vous une idée, quelle est la source de l'erreur? Le chemin du fichier n'est pas trop long et à chaque fois sous 256 signes, ce n'est pas non plus le problème: /

Merci d'avance :)

bot.rubiks
la source
avez-vous eu plus de chance à ce sujet? Je vis la même chose.
mushcraft
1
J'ai déjà résolu ce problème en partageant la solution ici -> stackoverflow.com/questions/22583418/…
ashumeow
2
Erreur: le chemin du fichier est trop long sous Windows, ne dépassez pas 240 caractères. Essayez simplement d'utiliser un chemin plus court pour votre projet. Dans mon cas, j'ai déplacé la source de mon projet d'un autre dossier vers le bureau et après l'ouverture du projet depuis le bureau, ce problème s'est résolu automatiquement.
Lucky Rana
@LuckyRana a également travaillé pour moi
Bassem Wissa
Comme @LuckyRana l'a dit, moins le nombre de caractères compte, je n'ai pas eu à changer de répertoire, le nom de mon projet était trop long, donc il a été raccourci et cela a fonctionné. Cela peut aider si quelqu'un est confronté au problème et que son projet est déjà dans un répertoire racine.
devcodes

Réponses:

128

Dans mon cas, l'erreur a été causée par un fichier PNG que j'ai ajouté au dossier pouvant être dessiné. J'avais changé son extension de jpg en png en changeant le texte (d'une manière incorrecte) puis en le téléchargeant au format PNG.

C'était le problème sur lequel Android Studio pointait.

J'ai résolu ce problème et j'ai fait disparaître l'erreur en modifiant l'extension de fichier à l'aide de l' outil Paint.NET ou de tout autre outil (de manière appropriée), puis en le téléchargeant dans le dossier pouvant être dessiné.

smoothumut
la source
13
Astuce: si vous êtes sous mac os, vous pouvez ouvrir le terminal et exécuter la commande suivante à partir du dossier images: 'sips -s format png * .png --out.' Il convertira correctement tous les fichiers avec le suffixe .png en vrais fichiers PNG :)
cassioso
la même chose m'est arrivée, j'ai renommé une extension de psd en png et elle n'a pas fonctionné. obtenu ce message d'erreur exact.
TharakaNirmana
2
Ce numéro a également été reproduit pour moi. Merci beaucoup pour votre réponse.
Nisim Naim
@cassioso Merci mon pote.
WideFide
1
Merci mon pote .. a résolu mon problème en faisant exactement la même chose que vous avez mentionné.
Aparna
116

J'ai résolu ce problème en déplaçant le projet vers le répertoire externe, puis il a été compilé avec succès.

Cela était dû au long chemin du répertoire du projet.

Par exemple, j'ai déplacé le projet de:

D:/Android/Apps/AndroidStudioProject/AppName

à

D:/Android/AppName
Lakhan Sharma
la source
Je ne sais pas pourquoi ... mais c'est la seule chose qui a fonctionné pour moi. Merci beaucoup!
drayn le
1
Oui, je ne peux pas expliquer pourquoi. Mais cela a bien fonctionné pour moi aussi
Thilaw Fabrice
8
Cela peut être dû à un problème de long chemin.
Rajeev
1
Eu le même problème sur Windows 7 x64, Gradle 2.14.1, les outils de construction Android 24.0.2. Mon chemin complet vers le fichier de ressources était trop long (243 symboles). Lorsque j'ai renommé le dossier avec le projet, le problème a été résolu.
Dmitry
A travaillé pour moi aussi !. J'ai eu le problème sur Android studio 2.2.0
Zen
53

Cela est dû à l'ajout d'une image dans drawable qui a une extension comme (.jpg), et vous l'avez modifiée ou enregistrée au format .png (cette erreur se produira lors du changement manuel du format d'image sans utiliser d'outil d'édition).

Android Studio lèvera une erreur lors de la compilation du package de ressources à l'aide de AAPT (Android Asset Packaging Tool), il vous suffit donc d'utiliser certains outils d'édition d'image tels que GIMP ou Paint pour enregistrer l'extension en conséquence. Reconstruisez votre projet une fois que tout est terminé.

Par exemple: ouvrez votre image dans Paint (faites glisser et déposez votre image pour l'ouvrir) → menu FichierEnregistrer sousEnregistrer comme type → sélectionnez le type souhaité dans la liste déroulante comme je l'ai montré dans les images ci-dessous:

Entrez la description de l'image ici

Entrez la description de l'image ici

anand krish
la source
@krish J'ai changé l'extension avec gimp mais cela ne semble pas fonctionner autrement, veuillez aider.
Ajay Pandya
1
utilisez l' outil Paint pour changer l'extension de l'image dude, c'est assez facile. J'ai expliqué ci-dessus comment l'utiliser aussi ...
anand krish
1
J'ai changé l'extension d'image avec Preview (sur Mac), a parfaitement fonctionné, merci beaucoup!
Emzor
1
Attention: l'utilisation de Paint supprimera la transparence s'il y avait de la transparence dans votre image.
Kingston le
1
c'est vraiment utile thnx tellement
Achref Gassoumi
20

Dans mon cas, la solution était simple. J'ai déplacé l'ensemble du projet vers un autre emplacement où le chemin est court.

Le problème était dû à de longs noms de répertoires et de fichiers.

Kadir Erturk
la source
5
L'OP dit que le chemin du fichier n'est pas trop long. Si vous voulez le défier à ce sujet, peut-être un commentaire serait-il préférable.
Jonathan Mee
Cela a à voir avec les limites de longueur de chemin Windows lorsque Bamboo s'exécute sur Windows Server. Solution: Construisez sur Linux!
Ewoks
20

La meilleure solution est de changer buildDir dans build.gradle :

Par exemple:

allprojects {
    buildDir = "C:/tmp/${rootProject.name}/${project.name}"
    repositories {
        jcenter()
    }
}

Reconstruire et codage heureux.

Heberth
la source
Beaucoup plus facile que de déplacer le projet. Agréable!
fishjd
J'ai essayé la solution et cela a fonctionné, mais maintenant je ne peux pas déployer sur mon téléphone à partir de Visual Studio 2015. Obtenez l'erreur suivante "Impossible de localiser un apk déployable. Vous devrez peut-être créer votre projet."
Hassan Ata Ullah
9

Dans mon cas, j'ai résolu ce problème en changeant simplement mon fichier de bibliothèque car j'ai fait une erreur stupide en ajoutant deux versions différentes de la même bibliothèque.

Comme cela peut être dû à diverses raisons, j'ai découvert les moyens suivants pour résoudre ce problème en fonction du problème:

  1. Inadéquation des ressources

  2. Attributs manquants, balises erronées, etc. dans les ressources

  3. Problème de styles

  4. Nom manquant dans les styles

  5. Duplication des ressources et des bibliothèques

  6. Parfois, il peut même être résolu en modifiant la bibliothèque compatible dans build.gradle

  7. Exécuter la aaptcommande

  8. Renommer l'extension de .jpg en .png

  9. Simplement avec l'aide de Clean Project.

    1. Même dans certains cas, le redémarrage d'Android Studio peut résoudre le problème.
SID --- Choke_de_Code
la source
4

C'est parce que votre fichier PNG n'est pas pris en charge ou bien vous avez renommé votre fichier directement.

Suivez les étapes suivantes.

  1. Copiez votre fichier source d'image d'Android Studio sur votre bureau.
  2. Ouvrez le fichier avec Paint.
  3. Enregistrez le fichier sous l'extension .png
  4. Supprimez le fichier source existant d'Android Studio que vous avez copié.
  5. Ajoutez le fichier nouvellement créé que vous avez renommé via Paint.

Problème résolu :)

Apprendre toujours
la source
J'ai utilisé tinypng.com pour régénérer des images png
Junior Mayhé
4

Dans mon cas, lorsque j'ai créé un fichier 9.png, mon fichier PNG d'origine utilisait la marge où la ligne 9.png est dessinée, créant un mauvais fichier 9.png. Essayez d'ajouter une marge à votre fichier PNG.

Guilherme Ramos
la source
Oui, le mien était similaire à ça. J'étais en train de modifier un fichier image et quand je l'ai sauvegardé, il est devenu corrompu. Je devais juste refaire les réglages de l'image et la réenregistrer.
uplearnedu.com
4

Si vous utilisez Linux, essayez ceci:

sudo apt-get install lib32stdc++6 lib32z1

C'est d' ici .

Maksim Turaev
la source
3

La meilleure réponse est déjà donnée dans la sortie gradle:

* Try:
Run with --stacktrace option to get the stack trace. 

Ouvrez le terminal dans Android Studio et exécutez gradlew :app:mergeDebugResources --stacktrace. (Dans mon cas, c'était la limite de caractères Windows 240), mais cela devrait également vous donner la cause première de tout autre problème.

mattlaabs
la source
3

Dans mon cas, je pense que ce problème était lié à la longueur du chemin du fichier. Les systèmes UNIX et Windows imposent une longueur de chemin maximale de 255 et 260 caractères respectivement, et je crois que le processus de resserrement échoue lors de l'attribution à un chemin spécifié dynamiquement. Ainsi, même si les longueurs de chemin citées dans le message d'erreur sont plus courtes que la limite (la mienne n'était que de 187 dans un environnement de construction Windows), je pense que l'utilitaire crunch peut spécifier en interne un chemin plus long, même temporairement.

Vous pouvez déterminer s'il s'agit de la source de l'erreur en déplaçant votre projet vers le répertoire le plus racine de votre système de fichiers, puis en tentant de le recompiler.

Mapsy
la source
Je vous remercie. J'ai eu le même problème mais je ne m'en suis pas rendu compte. Le message d'erreur n'indiquait pas la longueur du chemin comme problème et la longueur du chemin vers le fichier qu'il imprime était bien inférieure à 255. Néanmoins, définir un env var GRADLE_USER_HOME sur quelque chose de très court a résolu le problème sur ma machine de construction.
albert c braun
2

J'ai essayé de reconstruire, redémarrer, nettoyer, mettre à jour Gradle, etc. Cependant, aucun d'entre eux n'a fonctionné pour moi.

Parfois, cela peut être dû à un nom incorrect pour un fichier XML ou de ressources.

Au moins, pour moi, ce problème a été résolu en changeant le nom.

elfekz
la source
2

J'ai remarqué que la rétrogradation des outils de construction Gradle vers la version 1.2.3 a résolu mon problème d'erreur PNG Crunching, mais sur la version 1.5.0, le problème persiste.

AskQ
la source
1

Fichier> Invalider les caches / Redémarrer

Khan
la source
1

J'avais mis mes images dans mon dossier dessinable au début du projet, et cela me donnerait toujours cette erreur et ne construisait jamais donc je:

  1. Tout supprimé de drawable
  2. J'ai essayé de s'exécuter (ce qui a évidemment causé une autre erreur de construction car il manque une référence aux fichiers
  3. Re-ajouté les images au dossier, reconstruit le projet, l'exécute, puis cela a bien fonctionné.

Je ne sais pas pourquoi cela a fonctionné pour moi, mais cela a fonctionné. Bonne chance avec ce désordre que nous appelons Android Studio.

rychrist88
la source
1

Le processus de Crunching est le processus de préparation d'image, ce qui signifie que quelque chose ne va pas avec vos fichiers image. Dans mon cas, j'avais un fichier PNG qui n'était pas vraiment un fichier PNG.

Ma solution:

J'ai converti toutes mes images en PNG en exécutant un script Python super simple à partir du dossier d'image, donc au total, tout ce que vous avez à faire est:

  1. Afin d'installer la bibliothèque PIL, exécutez: pip install pillow

  2. Enregistrez le code Python ci-dessous dans un fichier .py dans votre dossier d'images que vous souhaitez convertir.

  3. Ajustez les variables from_format, to_format dans le script à ce dont vous avez besoin.

  4. Script de lancement: python script_name.py

    import os
    from PIL import Image
    
    from_format = (".jpg", ".png", ".bmp")
    to_format = "png"
    
    for fn in os.listdir('.'):
         if os.path.isfile(fn) and fn.lower().endswith(from_format):
            print "Converting File: %s" % fn
            im = Image.open(fn)
            im.save(fn.split('.')[0] + '.' + to_format, to_format.upper())

Et si vous souhaitez en savoir plus sur le module Image: http://effbot.org/imagingbook/image.htm

Mercure
la source
1

J'ai rencontré ce problème lorsque j'ai copié mes images (peu importe JPEG ou PNG) dans le dossier dessiné manuellement. Il peut y avoir différents types de solutions temporaires à ce problème, mais un meilleur moyen éternel est d'utiliser le plugin d'importateur Drawable pour le studio Android .

Installez-le en allant dans: menu FichierParamètresPluginsParcourir les référentiels → rechercher "Drawable". Vous trouverez l'importateur Drawable comme première option. Cliquez sur installer dans le panneau de droite.

Utilisez-le en cliquant avec le bouton droit sur le dossier de ressources Drawable, puis sur nouveau. Vous pouvez maintenant voir quatre nouvelles options ajoutées au bas de la liste, et parmi celles-ci, vous trouverez votre option appropriée. Dans ce cas, l '"importation par lots" ferait l'affaire.

AmiNadimi
la source
1

J'ai eu ce problème après la migration vers Gradle 3.3, sous Windows (avec gradle-2.14.1 tout allait bien).

Le problème était dans le chemin d'accès au cache de construction Gradle, qui contient des caractères cyrilliques, comme

C:\Users\Иван\.android\build-cache

J'ai donc renommé le dossier de l'utilisateur en "Ivan", et le problème a disparu.

IvanP
la source
+1 mais nous n'avons pas pu résoudre le problème sur notre serveur de build. Le chemin semble bon mais ne fonctionne pas. Nous sommes retournés à l'ancien gradle ...: /
L'incroyable
1

Cela semble être un vilain problème de Gradle. Nous venons de passer de la version 2.14 à la version 3.3 et notre serveur de build ne pouvait plus construire (une version locale dans Android Studio fonctionnait).

Une erreur avec un chemin trop long s'affiche par exemple:

C: \ Windows \ System32 \ config \ systemprofile.gradle \ caches \ 3.3 \ scripts-remapped \ build_bonsjy48fqq8sotonpgrvhswt \ 36ejadunoxgw3iugkh95lqw \ projedd7e29570aeclosclosclosclosclosclosclosure79482d0308d82f4e346b \ classes_bon_s0308 $ _hsun_grvhpf $ __grand_s8 $ _s_gr_s8_s_b_b0308

Nous avons dû créer un compte d'utilisateur local pour le service qui a fonctionné en tant que service système pendant des années ... Maintenant, il enregistre sous C: \ Users ... qui est beaucoup plus court que le chemin du profil système.

L'incroyable Jan
la source
1

J'ai changé l'emplacement de l'application et l'ai copiée sur un chemin court. Vous pouvez le faire en copiant simplement votre projet et en le collant dans un nouvel emplacement court. Et cela a fonctionné pour moi.

Par exemple,

Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app
Crime_Master_GoGo
la source
0

La fermeture d'Android Studio et la réouverture ont résolu ce problème dans mon cas.

Essaie. Je sais que ce n'est pas la bonne solution ou réponse, mais cela fonctionne. Je ne suis pas sûr de la cause profonde. Ce serait formidable si quelqu'un pouvait partager ça.

Sunil Purushothaman
la source
0

J'importais une application Android dans Android Studio (Gradle version 2.10) depuis Eclipse. Les images dessinables ne sont pas prises en charge, puis supprimez manuellement ces images et collez certaines images PNG.

Et mettez également à jour l'importateur de dessin Android à partir du référentiel Android. Ensuite, nettoyez et reconstruisez l'application, puis cela fonctionne.

Muru
la source
0

Cette erreur a été causée pour moi à cause du chemin où se trouvait mon projet. Il y avait un espace vide dans un dossier, par exemple,

Folder\Another Folder\MyAndroidProjects\...

Le changer Folder\AnotherFolder\MyAndroidProjects\...et resynchroniser Gradle a résolu ce problème pour moi.

Marcus
la source
0

J'ai également rencontré ce problème, et il n'a pas été résolu en reformatant l'image bien qu'il s'agisse d'une image d'une application de projet de Google, et il n'a été résolu que par:

Déplacement direct du fichier projet sur la partition

Essayez-le. Cela pourrait vous aider.

Dasser Basyouni
la source
0

Dans mon cas, j'ai atteint la solution en deux étapes:

  1. Gardez le nom de votre projet, le nom du package, les noms de dossier courts, car si le nom du répertoire dépasse 255 caractères, il génère l'erreur mergeResource.
  2. Gardez vos drawables dans les dossiers drawable. Tout fichier pouvant être dessiné tel que .jpg et .png en dehors des dossiers pouvant être dessinés renvoie l'erreur de dossier mergeResource.
DiRiNoiD
la source
255 caractères? Quelle plateforme? Linux? Mac?
Peter Mortensen
0

Je souffre également du même problème. Dans mon cas, je viens de copier l'image dans le dossier pouvant être dessiné, puis Android Studio affiche l'erreur "Certains fichiers ont échoué".

Mon problème concernant l'image uniquement parce que cette image a été enregistrée à partir de l'application de mon appareil photo personnalisé au format .png. Et à des fins de test, je l'ai copié dans le dossier pouvant être dessiné.

Après cela, j'ai testé l'enregistrement de l'image au format .jpg. Cela ne donnait aucune erreur. Cela signifie que la caméra prend en charge par défaut le format ".jpg".

Finalement j'ai réalisé deux choses:

  1. L'appareil photo prend par défaut le format ".jpg"

  2. Sans utiliser d'outils d'image, ne modifiez pas les formats d'image (même par programmation).

Kona Suresh
la source
extension de fichier! = format de fichier Vous pouvez nommer un fichier comme vous le souhaitez - cela ne changera pas son format.
L'incroyable
Je ne comprends pas ce que vous essayez de dire !. Mon image prise à partir de l'application de caméra personnalisée et enregistrée au format .png par programmation. Ainsi, lorsque j'ajoute cette image à la compilation de dossiers pouvant être dessinée, la compilation a échoué. lorsque vous enregistrez l'image de mon application appareil photo au format .jpg, l'erreur ne s'affiche pas.
Kona Suresh
J'ai compris votre réponse comme ceci: votre application a créé un jpg mais l'a nommé "png" et vous avez été surpris que cela ne fonctionne pas.
L'incroyable
0

Ajoutez simplement ceci à votre fichier local.properties de votre projet:

BUILD_DIR=C\:\\Tmp

(L'erreur dans Windows est due à un long chemin, j'ai donc donné le chemin vers un dossier temporaire.)

RATHI
la source
0

Pour moi, c'est parce que l'un de mes fichiers .png est en fait un fichier .psd. Réenregistrez-le dans un vrai fichier PNG, et il est corrigé.

Kai Wang
la source
0

Pour moi, c'était un fichier PNG corrompu .

Accédez à votre resdossier et essayez d'ouvrir chaque image. Lorsque vous trouvez une image qui ne peut pas être ouverte, remplacez-la par une bonne image.

Floris M
la source
-1

Pour résoudre ce problème, vous devez utiliser drawable -> new -> image asset, puis ajouter vos images. Vous trouverez alors le dossier mipmap contenant vos images, et vous pourrez l'utiliser par @ mibmab / img.

Wessam Hassan Ragab
la source