Esecuzione non riuscita per l'app delle attività: mergeDebugResources 'Crunching Cruncher ... png non riuscita


103

Ho aggiunto alcune immagini con il formato * .png alla mia directory drawable e le ho collegate con i layout. Ma ogni volta che ho provato a costruirlo, appare un errore

"... Crunching Crunsher ... png non riuscito"

Di seguito è riportato l'output della 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

Ho provato a pulire il progetto, ricostruirlo, aggiornare le dipendenze tramite "gradlew clean build --refresh-dependencies", niente ha funzionato. Ho controllato le dipendenze nel file build.gradle ma niente sembra creare l'errore.

   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'
  }

Hai un'idea, qual è la fonte dell'errore? Anche il percorso del file non è troppo lungo e ogni volta sotto 256 segni, anche questo non è il problema: /

Grazie in anticipo :)


hai avuto ulteriore fortuna su questo? Sto vivendo lo stesso.
Mushcraft

1
Ho già risolto questo problema condividendo la soluzione qui -> stackoverflow.com/questions/22583418/...
ashumeow

2
Errore: percorso del file troppo lungo su Windows, mantieni meno di 240 caratteri Prova a utilizzare un percorso più breve per il tuo progetto. Nel mio caso ho spostato l'origine del mio progetto da un'altra cartella al desktop e dopo aver aperto il progetto dal desktop questo problema si è risolto automaticamente.
Lucky Rana

@LuckyRana stesso ha funzionato per me
Bassem Wissa

Come ha detto @LuckyRana, meno numero di caratteri conta, non ho dovuto cambiare la directory, il nome del mio progetto era troppo lungo, quindi l'ho reso più breve e ha funzionato. Questo potrebbe aiutare se qualcuno affronta il problema e il suo progetto è già in una directory principale.
devcodes

Risposte:


128

Nel mio caso, l'errore è stato causato da un file PNG che ho aggiunto alla cartella disegnabile. Avevo cambiato la sua estensione da jpg a png cambiando il testo (in modo non corretto) e poi caricandolo come PNG.

Questo era il problema a cui puntava Android Studio.

Ho risolto questo problema e l'errore è scomparso cambiando l'estensione del file utilizzando lo strumento Paint.NET o qualsiasi altro strumento (modo corretto), quindi caricandolo nella cartella disegnabile.


13
Suggerimento: se sei su mac os puoi aprire il terminale ed eseguire il seguente comando dalla cartella delle immagini: "sips -s format png * .png --out." Convertirà correttamente tutti i file con suffisso .png in file PNG reali :)
cassioso

stessa cosa è successa a me ho rinominato anch'io un'estensione da psd a png e non è riuscita a funzionare. ha ricevuto questo messaggio di errore esatto.
TharakaNirmana

2
Questo problema è stato riprodotto anche per me. Grazie mille per la tua risposta.
Nisim Naim

@cassioso Grazie amico.
WideFide

1
Grazie amico .. ha risolto il mio problema facendo esattamente la stessa cosa che hai menzionato.
Aparna

116

Ho risolto questo problema spostando il progetto nella directory esterna e quindi compilato correttamente.

Era dovuto al lungo percorso della directory del progetto.

Ad esempio, ho spostato il progetto da:

D:/Android/Apps/AndroidStudioProject/AppName

per

D:/Android/AppName

Non so perché .. ma è l'unica cosa che ha funzionato per me. Grazie mille!
Drayn

1
Sì, non so spiegare perché. Ma questo ha funzionato bene anche per me
Thilaw Fabrice

8
Potrebbe essere dovuto a un problema di percorso lungo.
Rajeev

1
Ha avuto lo stesso problema su Windows 7 x64, Gradle 2.14.1, strumenti di build Android 24.0.2. Il mio percorso completo al file di risorse era troppo lungo (243 simboli). Quando ho rinominato la cartella con il progetto, il problema è stato risolto.
Dmitry

Ha funzionato anche per me !. Ha avuto il problema su Android Studio 2.2.0
Zen

53

Ciò è dovuto all'aggiunta di un'immagine in Drawable che ha un'estensione come (.jpg) e l'hai modificata o salvata in un formato .png (questo errore si verificherà durante la modifica manuale del formato dell'immagine senza utilizzare uno strumento di editor).

Android Studio genera un errore durante la compilazione del pacchetto di risorse utilizzando AAPT (Android Asset Packaging Tool), quindi tutto ciò che devi fare è utilizzare alcuni strumenti di editor di immagini come GIMP o Paint per salvare l'estensione di conseguenza. Ricostruisci il tuo progetto una volta che tutto è finito.

Ad esempio: apri la tua immagine in Paint (trascina la tua immagine per aprirla) → menu FileSalva con nomeSalva come tipo → seleziona il tipo richiesto dal menu a discesa come ho mostrato nelle immagini seguenti:

Inserisci qui la descrizione dell'immagine

Inserisci qui la descrizione dell'immagine


@krish Ho cambiato estensione con gimp ma sembra che non funzioni in altro modo per favore aiutatemi.
Ajay Pandya

1
usa lo strumento Paint per modificare l'estensione dell'immagine, è abbastanza facile. Ho spiegato sopra come usarlo anche ...
anand krish

1
Ho cambiato l'estensione dell'immagine con Anteprima (su Mac), ha funzionato perfettamente, molte grazie!
Emzor

1
Parola di cautela: l'uso di Paint rimuoverà la trasparenza se c'era della trasparenza nell'immagine.
Kingston

1
questo è davvero utile grazie così tanto
Achref Gassoumi

20

Nel mio caso la soluzione è stata semplice. Ho spostato l'intero progetto in un'altra posizione dove il percorso è breve.

Il problema era causato da nomi di directory e nomi di file lunghi.


5
L'OP dice che il percorso del file non è troppo lungo. Se vuoi sfidarlo su questo forse un commento sarebbe meglio.
Jonathan Mee

Ciò ha a che fare con i limiti di lunghezza del percorso di Windows quando Bamboo è in esecuzione su Windows Server. Soluzione: crea su Linux!
Ewoks

20

La soluzione migliore è cambiare buildDir in build.gradle :

Per esempio:

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

Ricostruisci e codifica felice.


Molto più facile che spostare il progetto. Bello!
fishjd

Ho provato la soluzione e ha funzionato, ma ora non posso eseguire la distribuzione sul mio telefono da Visual Studio 2015. Ricevi il seguente errore "Impossibile individuare un apk distribuibile. Potrebbe essere necessario creare il progetto".
Hassan Ata Ullah

9

Nel mio caso, ho risolto questo problema semplicemente modificando il file della mia libreria poiché ho commesso uno stupido errore di aggiungere due versioni diverse della stessa libreria.

Poiché ciò può essere dovuto a vari motivi, ho scoperto i seguenti modi per risolvere questo problema in base al problema:

  1. Mancata corrispondenza delle risorse

  2. Attributi mancanti, tag errati, ecc. Nelle risorse

  3. Problema negli stili

  4. Nome mancante negli stili

  5. Duplicazione di risorse e biblioteche

  6. A volte può anche essere risolto cambiando la libreria compatibile in build.gradle

  7. Esecuzione del aaptcomando

  8. Rinominare l'estensione da .jpg a .png

  9. Semplicemente con l'aiuto di Clean Project.

    1. Anche in alcuni casi, il riavvio di Android Studio può risolvere il problema.

4

Questo perché il tuo file PNG non è supportato oppure hai rinominato il tuo file direttamente.

Eseguire le seguenti operazioni.

  1. Copia il file sorgente dell'immagine da Android Studio sul desktop.
  2. Apri il file con Paint.
  3. Salva il file come estensione .png
  4. Elimina il file sorgente esistente da Android Studio che hai copiato.
  5. Aggiungi il file appena creato che hai rinominato tramite Paint.

Problema risolto :)


Ho usato tinypng.com per rigenerare le immagini png
Junior Mayhé

4

Nel mio caso, quando ho creato un file 9.png, il mio file PNG originale utilizzava il margine in cui è disegnata la linea 9.png, creando un file 9.png non valido. Prova ad aggiungere un po 'di margine al tuo file PNG.


Sì, il mio era simile a questo. Stavo alterando un file immagine e quando l'ho salvato si è danneggiato. Dovevo solo rifare le regolazioni all'immagine e salvarla di nuovo.
uplearnedu.com

4

Se utilizzi Linux, prova questo:

sudo apt-get install lib32stdc++6 lib32z1

Viene da qui .


3

La risposta migliore è già data nell'output gradle:

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

Apri il Terminale in Android Studio ed esegui gradlew :app:mergeDebugResources --stacktrace. (Nel mio caso era il limite di 240 caratteri di Windows), ma dovrebbe darti anche la causa principale di qualsiasi altro problema.


3

Nel mio caso, credo che questo problema avesse a che fare con la lunghezza del percorso del file. I sistemi UNIX e Windows impongono una lunghezza massima del percorso rispettivamente di 255 e 260 caratteri e credo che il processo di crunch fallisca durante l'assegnazione a un percorso specificato dinamicamente. Quindi, anche se le lunghezze del percorso citate nel messaggio di errore sono inferiori al limite (il mio era solo 187 in un ambiente di build Windows), penso che l'utilità crunch possa specificare internamente un percorso più lungo, anche se solo temporaneamente.

È possibile determinare se questa è l'origine dell'errore spostando il progetto nella directory più radice del file system, quindi provare a ricompilarlo.


Grazie. Ho avuto lo stesso problema ma non me ne sono reso conto. Il messaggio di errore non indicava la lunghezza del percorso come problema e la lunghezza del percorso del file stampato era ben al di sotto di 255. Tuttavia, l'impostazione di env var GRADLE_USER_HOME su qualcosa di molto breve ha risolto il problema sulla mia macchina di compilazione.
albert c braun

2

Ho provato a ricostruire, riavviare, pulire, aggiornare Gradle, ecc. Tuttavia, nessuno di loro ha funzionato per me.

A volte, può essere causato da una denominazione errata per un file XML o di risorse.

Almeno, per me, quel problema è stato risolto cambiando il nome.


2

Ho notato che il downgrade degli strumenti di compilazione Gradle a 1.2.3 ha risolto il mio problema dell'errore Crunching PNG, ma su 1.5.0 il problema persiste.



1

Avevo messo le mie immagini nella mia cartella disegnabile all'inizio del progetto, e mi dava sempre questo errore e non creavo mai così io:

  1. Eliminato tutto da disegnabile
  2. Ho provato a eseguire (che ovviamente ha causato un altro errore di compilazione perché manca un riferimento ai file
  3. Aggiunte nuovamente le immagini alla cartella, ricostruito il progetto, eseguito e poi ha funzionato bene.

Non ho idea del motivo per cui questo ha funzionato per me, ma ha funzionato. Buona fortuna con questo pasticcio che chiamiamo Android Studio.


1

Il processo Crunching è il processo di preparazione dell'immagine, il che significa che c'è qualcosa che non va nei tuoi file immagine. Nel mio caso avevo un file PNG che non era realmente un file PNG.

La mia soluzione:

Ho convertito tutte le mie immagini in PNG eseguendo uno script Python semplicissimo all'interno della cartella delle immagini, quindi in totale tutto ciò che devi fare è:

  1. Per installare la libreria PIL, eseguire: pip install pillow

  2. Salva il codice Python sottostante in un file .py all'interno della cartella delle immagini che desideri convertire.

  3. Regola le variabili from_format, to_format nello script in base a ciò di cui hai bisogno.

  4. Esegui script: 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())

E se vuoi saperne di più sul modulo Immagine: http://effbot.org/imagingbook/image.htm


1

Ho affrontato questo problema quando ho copiato manualmente le mie immagini (non importa JPEG o PNG) nella cartella disegnabile. Potrebbero esserci diversi tipi di soluzioni temporanee a questo problema, ma un modo eterno migliore è utilizzare il plug-in di importazione Drawable per Android Studio .

Installalo andando su: menu FileImpostazioniPluginSfoglia repository → cerca "Drawable". Troverai l'importatore Drawable come prima opzione. Fare clic su Installa nel pannello di destra.

Usalo facendo clic con il pulsante destro del mouse sulla cartella delle risorse disegnabili e quindi su Nuovo. Ora puoi vedere quattro nuove opzioni aggiunte in fondo all'elenco e tra quelle troverai l'opzione appropriata. In questo caso l '"importazione batch disegnabile" farebbe il trucco.


1

Ho riscontrato questo problema dopo la migrazione a Gradle 3.3, su Windows (con gradle-2.14.1 tutto andava bene).

Il problema era nel percorso per la build-cache di Gradle, che contiene caratteri cirillici, come

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

Così ho rinominato la cartella dell'utente in "Ivan" e il problema è stato risolto.


+1 ma non siamo riusciti a risolvere il problema sul nostro server di compilazione. Il percorso sembra buono ma non funziona. Siamo tornati alla vecchia scuola ...: /
L'incredibile gennaio

1

Sembra essere un brutto problema di Gradle. Abbiamo appena aggiornato da 2.14 a 3.3 e il nostro server di build non poteva più costruire (una build locale in Android Studio ha funzionato).

L'errore con un percorso troppo lungo mostra ad esempio:

C: \ Windows \ System32 \ Config \ systemprofile.gradle \ cache \ 3.3 \ scripts-rimappata \ build_bonsjy48fqq8sotonpgrvhswt \ 36ejadunoxgw3iugkh95lqw \ projedd7e29570ae79482d0308d82f4e346b \ Classes \ build_bonsjy48fqq8sotonpgrvhswt $ _run_closure1 $ _closure8 $ _closure13 $ _closure14 $ _closure15.class

Abbiamo dovuto creare un account utente locale per il servizio che è stato eseguito come servizio di sistema per anni ... Ora salva in C: \ Users ... che è molto più breve del percorso del profilo di sistema.


1

Ho cambiato la posizione dell'app e l'ho copiata in un percorso breve. Puoi farlo semplicemente copiando il tuo progetto e incollandolo in una nuova posizione breve. E ha funzionato per me.

Per esempio,

Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app

0

La chiusura di Android Studio e l'apertura di nuovo hanno risolto questo problema nel mio caso.

Provaci. So che non è la soluzione o la risposta giusta, ma funziona. Non sono sicuro della causa principale. Sarebbe fantastico se qualcuno potesse condividerlo.


0

Stavo importando un'applicazione Android in Android Studio (Gradle versione 2.10) da Eclipse. Le immagini disegnabili non sono supportate, quindi rimuovi manualmente quelle immagini e incolla alcune immagini PNG.

E aggiorna anche l'importatore disegnabile Android dal repository Android. Quindi pulire e ricostruire l'applicazione, e poi funziona.


0

Questo errore è stato causato per me a causa del percorso in cui si trovava il mio progetto. C'era uno spazio vuoto in una cartella, ad esempio,

Folder\Another Folder\MyAndroidProjects\...

Cambiarlo in Folder\AnotherFolder\MyAndroidProjects\...e risincronizzare Gradle ha risolto il problema.


0

Ho affrontato anche questo problema e non è stato risolto riformattando l'immagine sebbene fosse un'immagine da un'app di progetto di Google, ed è stato risolto solo da:

Spostare direttamente il file di progetto nella partizione

Provalo. Potrebbe aiutarti.


0

Nel mio caso ho raggiunto la soluzione in due passaggi:

  1. Mantieni il nome del progetto, il nome del pacchetto, i nomi delle cartelle brevi, perché se il nome della directory supera i 255 caratteri, viene visualizzato l'errore mergeResource.
  2. Mantieni i tuoi drawable nelle cartelle drawable. Qualsiasi file disegnabile come .jpg e .png al di fuori delle cartelle disegnabili genera l'errore della cartella mergeResource.

255 caratteri? Quale piattaforma? Linux? Mac?
Peter Mortensen

0

Anch'io soffro dello stesso problema. Nel mio caso ho appena copiato l'immagine nella cartella disegnabile, quindi Android Studio mostra l'errore "Alcuni file crunch non sono riusciti".

Il mio problema riguarda l'immagine solo perché quell'immagine è stata salvata da quella dell'applicazione della mia fotocamera personalizzata in formato .png. E a scopo di test l'ho copiato nella cartella disegnabile.

Successivamente ho provato a salvare l'immagine come .jpg. Non stava dando alcun errore. Ciò significa che la fotocamera supporta per impostazione predefinita il formato ".jpg".

Finalmente ho capito due cose:

  1. Per impostazione predefinita, la fotocamera supporta il formato ".jpg"

  2. Senza utilizzare strumenti di immagine, non modificare i formati dell'immagine (anche a livello di programmazione).


estensione file! = formato file Puoi nominare un file come desideri - non cambierà il suo formato.
L'incredibile gennaio

Non capisco cosa stai cercando di dire !. La mia immagine è stata presa dall'app fotocamera personalizzata e salvata come .png a livello di programmazione. Quindi, quando aggiungo quell'immagine alla cartella disegnabile, la compilazione non è riuscita. quando salvo l'immagine dalla mia app della fotocamera come .jpg non darà l'errore.
Kona Suresh

Ho capito la tua risposta in questo modo: la tua app ha creato un jpg ma lo ha chiamato "png" e poi sei rimasto sorpreso che non funzionasse.
L'incredibile

0

Basta aggiungerlo a local.properties file del progetto:

BUILD_DIR=C\:\\Tmp

(L'errore in Windows è dovuto a un lungo percorso, quindi ho dato il percorso a una cartella temporanea.)


0

Per me, è perché uno dei miei file .png è in realtà un file .psd. Salvalo di nuovo in un file PNG reale ed è risolto.


0

Per me, era un file PNG danneggiato .

Vai alla tua rescartella e prova ad aprire ogni immagine. Quando trovi un'immagine che non può essere aperta, sostituiscila con una buona immagine.


-1

Per risolvere questo problema dovresti usare drawable -> new -> asset immagine e quindi aggiungere le tue immagini. Troverai quindi la cartella mipmap contenente le tue immagini e potrai usarla con @ mibmab / img.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.