A execução falhou para a tarefa 'app: mergeDebugResources' Crunching Cruncher ... png falhou

103

Eu adicionei algumas imagens com o formato * .png ao meu diretório de desenho e vinculei-o aos layouts. Mas toda vez que tento construí-lo, aparece um erro

"... Crunching Crunsher ... png falhou"

A seguir está a saída do 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

Tentei limpar o projeto, reconstruí-lo, atualizar as dependências via "gradlew clean build --refresh-dependencies", nada funcionou. Verifiquei as dependências no arquivo build.gradle, mas nada parece estar criando o erro.

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

Você tem uma ideia, qual é a origem do erro? O caminho do arquivo também não é muito longo e sempre sob 256 sinais, esse também não é o problema: /

Agradeço antecipadamente :)

bot.rubiks
fonte
você teve mais sorte nisso? Estou experimentando o mesmo.
mushcraft
1
Já resolvi esse problema compartilhando a solução aqui -> stackoverflow.com/questions/22583418/…
ashumeow
2
Erro: Caminho de arquivo muito longo no Windows, mantenha abaixo de 240 caracteres. Tente usar um caminho mais curto para seu projeto. No meu caso, mudei a fonte do meu projeto de outra pasta para a área de trabalho e, após abrir o projeto da área de trabalho, esse problema foi resolvido automaticamente.
Lucky Rana
@LuckyRana mesmo funcionou para mim
Bassem Wissa
Como @LuckyRana disse, menos número de caracteres importa, não tive que mudar o diretório, o nome do meu projeto era muito longo, então encurtei e funcionou. Isso pode ajudar se alguém enfrentar o problema e seu projeto já estiver em um diretório raiz.
devcodes

Respostas:

128

No meu caso, o erro foi causado por um arquivo PNG que adicionei à pasta drawable. Eu tinha mudado sua extensão de jpg para png mudando o texto (de uma forma inadequada) e então enviando-o como PNG.

Esse era o problema que o Android Studio estava apontando.

Corrigi esse problema e fiz com que o erro desaparecesse alterando a extensão do arquivo usando a ferramenta Paint.NET ou qualquer outra ferramenta (da maneira adequada) e, em seguida, enviando-o para a pasta drawable.

Smoothumut
fonte
13
Dica: se você estiver no mac os, pode abrir o terminal e executar o seguinte comando da pasta de imagens: 'sips -s format png * .png --out.' Ele irá converter corretamente todos os arquivos com sufixo .png em arquivos PNG reais :)
cassioso
a mesma coisa aconteceu comigo, eu renomei uma extensão também de psd para png e não funcionou. recebeu esta mensagem de erro exata.
TharakaNirmana
2
Este problema foi reproduzido para mim também. Muito obrigado pela sua resposta.
Nisim Naim
@cassioso Obrigado amigo.
WideFide de
1
Obrigado amigo .. resolvi meu problema fazendo exatamente o mesmo que você mencionou.
Aparna
116

Corrigi esse problema movendo o projeto para o diretório externo e, em seguida, compilado com êxito.

Foi devido ao longo caminho do diretório do projeto.

Por exemplo, mudei o projeto de:

D:/Android/Apps/AndroidStudioProject/AppName

para

D:/Android/AppName
Lakhan Sharma
fonte
Não sei por que .. mas essa é a única coisa que funcionou para mim. Muito obrigado!
drayn de
1
Sim, não posso explicar por quê. Mas funcionou bem para mim também
Thilaw Fabrice,
8
Pode ser devido ao problema do caminho longo.
Rajeev,
1
Tive o mesmo problema no Windows 7 x64, Gradle 2.14.1, ferramentas de compilação do Android 24.0.2. Meu caminho completo para o arquivo de recurso era muito longo (243 símbolos). Quando mudei o nome da pasta com o projeto, resolvi o problema.
Dmitry
Funcionou para mim também !. Tive o problema no Android Studio 2.2.0
Zen
53

Isso ocorre devido à adição de uma imagem no drawable que tem alguma extensão como (.jpg), e você alterou ou salvou isso em um formato .png (este erro ocorrerá ao alterar o formato da imagem manualmente sem usar uma ferramenta de edição).

O Android Studio gerará um erro ao compilar o pacote de recursos usando AAPT (Android Asset Packaging Tool), então tudo que você precisa fazer é usar algumas ferramentas de edição de imagem como GIMP ou Paint para salvar a extensão de acordo. Reconstrua seu projeto depois que tudo estiver feito.

Por exemplo: abra sua imagem no Paint (arraste e solte sua imagem para abri-la) → menu ArquivoSalvar comoSalvar como tipo → selecione o tipo desejado na lista suspensa como mostrei nas imagens abaixo:

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

anand krish
fonte
@krish Eu mudei a extensão com o gimp, mas parece que não está funcionando de outra forma, por favor ajude.
Ajay Pandya
1
use a ferramenta Paint para mudar a extensão da imagem, é muito fácil. Eu expliquei acima sobre como usá-lo também ...
anand krish
1
Mudei a extensão da imagem com o Preview (no Mac), funcionou perfeitamente, muito obrigado!
Emzor,
1
Aviso: o uso do Paint removerá a transparência, se houver alguma transparência na imagem.
Kingston
1
isso é realmente útil, muito
embora
20

No meu caso, a solução foi simples. Mudei todo o projeto para outro local onde o caminho é curto.

O problema foi causado por nomes de diretório e nomes de arquivo longos.

Kadir Erturk
fonte
5
O OP diz que o caminho do arquivo não é muito longo. Se você quiser desafiá-lo sobre isso, talvez um comentário seja melhor.
Jonathan Mee
Isso tem a ver com os limites de comprimento do caminho do Windows quando a Bamboo está sendo executada no Windows Server. Solução: Construa no Linux!
Ewoks
20

A melhor solução é alterar buildDir em build.gradle :

Por exemplo:

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

Reconstrua e tenha uma codificação feliz.

Heberth
fonte
Muito mais fácil do que mover o projeto. Agradável!
fishjd
Tentei a solução e funcionou, mas agora não consigo implantar no meu telefone a partir do Visual Studio 2015. Obtenha o seguinte erro "Não foi possível localizar um apk implantável. Pode ser necessário criar seu projeto."
Hassan Ata Ullah
9

No meu caso, resolvi esse problema simplesmente alterando meu arquivo de biblioteca, pois cometi um erro bobo ao adicionar duas versões diferentes da mesma biblioteca.

Como isso pode ser devido a vários motivos, descobri as seguintes maneiras de resolver esse problema de acordo com o problema:

  1. Incompatibilidade de recursos

  2. Atributos ausentes, tags erradas etc. nos recursos

  3. Problema em estilos

  4. Nome ausente em estilos

  5. Duplicidade de recursos e bibliotecas

  6. Às vezes, pode até ser resolvido alterando a biblioteca compatível em build.gradle

  7. Executando o aaptcomando

  8. Renomeando a extensão de .jpg para .png

  9. Simplesmente com a ajuda de Clean Project.

    1. Mesmo em alguns casos, reiniciar o Android Studio pode resolver o problema.
SID --- Choke_de_Code
fonte
4

Isso ocorre porque seu arquivo PNG não é compatível ou você renomeou seu arquivo diretamente.

Execute as etapas a seguir.

  1. Copie o arquivo de origem da imagem do Android Studio para a área de trabalho.
  2. Abra o arquivo com o Paint.
  3. Salvar arquivo como extensão .png
  4. Exclua o arquivo de origem existente do Android Studio que você copiou.
  5. Adicione o arquivo recém-criado que você renomeou por meio do Paint.

Problema resolvido :)

Aprendendo Sempre
fonte
Eu usei tinypng.com para regenerar imagens png
Junior Mayhé
4

No meu caso, quando criei um arquivo 9.png, meu arquivo PNG original estava usando a margem onde a linha 9.png é desenhada, criando um arquivo 9.png inválido. Tente adicionar alguma margem ao seu arquivo PNG.

Guilherme Ramos
fonte
Sim, o meu era semelhante a este. Eu estava alterando um arquivo de imagem e quando o salvei, ele se corrompeu. Eu só tive que refazer os ajustes na imagem e salvá-la novamente.
uplearnedu.com
4

Se você estiver executando o Linux, tente isto:

sudo apt-get install lib32stdc++6 lib32z1

É daqui .

Maksim Turaev
fonte
3

A melhor resposta já é fornecida na saída do gradle:

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

Abra o Terminal no Android Studio e execute gradlew :app:mergeDebugResources --stacktrace. (No meu caso, era o limite de 240 caracteres do Windows), mas também deve fornecer a causa raiz para qualquer outro problema.

mattlaabs
fonte
3

No meu caso, acredito que esse problema tenha a ver com o comprimento do caminho do arquivo. Os sistemas UNIX e Windows impõem um comprimento máximo de caminho de 255 e 260 caracteres, respectivamente, e acredito que o processo de crunch falha ao atribuir um caminho especificado dinamicamente. Portanto, mesmo que os comprimentos de caminho citados na mensagem de erro sejam menores que o limite (o meu era apenas 187 em um ambiente de construção do Windows), acho que o utilitário crunch pode especificar internamente um caminho mais longo, mesmo que apenas temporariamente.

Você pode determinar se esta é a origem do erro movendo seu projeto para o diretório mais raiz em seu sistema de arquivos e, em seguida, tente recompilar.

Mapsy
fonte
Obrigado. Eu tive o mesmo problema, mas não percebi. A mensagem de erro não indicava o comprimento do caminho porque o problema e o comprimento do caminho para o arquivo que ele imprime estava bem abaixo de 255. No entanto, definir um env var GRADLE_USER_HOME para algo muito curto corrigiu o problema na minha máquina de construção.
albert c braun
2

Tentei reconstruir, reiniciar, limpar, atualizar o Gradle, etc. No entanto, nenhum deles funcionou para mim.

Às vezes, pode ser causado por uma nomenclatura incorreta para um arquivo XML ou de recurso.

Pelo menos, para mim, esse problema foi resolvido mudando o nome.

Elfekz
fonte
2

Percebi que fazer o downgrade das ferramentas de compilação do Gradle para 1.2.3 resolveu meu problema de erro de processamento de PNG, mas no 1.5.0 o problema continua.

AskQ
fonte
1

Arquivo> Invalidar Caches / Reiniciar

Khan
fonte
1

Eu coloquei minhas imagens em minha pasta de desenho no início do projeto, e sempre me dava esse erro e nunca criava, então eu:

  1. Excluiu tudo do drawable
  2. Tentei executar (o que obviamente causou outro erro de compilação porque está faltando uma referência aos arquivos
  3. Adicione as imagens novamente à pasta, reconstrua o projeto, execute-o e funcione bem.

Não tenho ideia de por que isso funcionou para mim, mas funcionou. Boa sorte com essa bagunça que chamamos de Android Studio.

rychrist88
fonte
1

O processo de trituração é o processo de preparação da imagem, o que significa que algo está errado com seus arquivos de imagem. No meu caso, eu tinha um arquivo PNG que não era realmente um arquivo PNG.

Minha solução:

Converti todas as minhas imagens para PNG executando um script Python super simples de dentro da pasta de imagens, portanto, no total, tudo o que você precisa fazer é:

  1. Para instalar a biblioteca PIL, execute: pip install pillow

  2. Salve o código Python abaixo em um arquivo .py dentro da pasta de imagens que deseja converter.

  3. Ajuste as variáveis from_format, to_format no script para o que você precisar.

  4. Execute o 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 você quiser ler mais sobre o módulo Imagem: http://effbot.org/imagingbook/image.htm

Mercúrio
fonte
1

Eu enfrentei esse problema quando copiei minhas imagens (não importa JPEG ou PNG) para a pasta drawable manualmente. Pode haver diferentes tipos de soluções temporárias para esse problema, mas a melhor maneira é usar o plugin importador Drawable para Android Studio .

Instale-o em: menu ArquivoConfiguraçõesPlug-insProcurar Repositórios → pesquisar "Drawable". Você encontrará o importador Drawable como a primeira opção. Clique em instalar no painel direito.

Use-o clicando com o botão direito do mouse na pasta de recursos Drawable e depois em novo. Agora você pode ver quatro novas opções adicionadas ao final da lista e, entre elas, encontrará a opção apropriada. Nesse caso, a "Importação de drawable em lote" resolveria o problema.

AmiNadimi
fonte
1

Tive esse problema após a migração para o Gradle 3.3, no Windows (com o gradle-2.14.1 estava tudo bem).

O problema estava no caminho para o cache de compilação do Gradle, que contém caracteres cirílicos, como

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

Então, renomei a pasta do usuário para "Ivan" e o problema desapareceu.

IvanP
fonte
+1, mas não conseguimos resolver o problema em nosso servidor de compilação. O caminho parece bom, mas não funciona. Voltamos ao antigo gradle ...: /
O incrível Jan
1

Parece ser um problema desagradável do Gradle. Acabamos de atualizar do 2.14 para o 3.3 e nosso servidor de compilação não conseguiu mais compilar (uma compilação local no Android Studio funcionou).

Erro com caminho muito longo mostra, por exemplo:

C: \ Windows \ System32 \ config \ systemprofile.gradle \ caches \ 3.3 \ scripts do remapped \ build_bonsjy48fqq8sotonpgrvhswt \ 36ejadunoxgw3iugkh95lqw \ projedd7e29570ae79482d0308d82f4e346b \ classes \ build_bonsjy48fqq8sotonpgrvhswt $ _run_closure1 $ _closure8 $ _closure13 $ _closure14 $ _closure15.class

Tivemos que criar uma conta de usuário local para o serviço que funcionou como serviço do sistema por anos ... Agora ele salva em C: \ Usuários ... que é muito mais curto que o caminho do perfil do sistema.

O incrível janeiro
fonte
1

Mudei a localização do aplicativo e copiei para um atalho. Você pode fazer isso apenas copiando seu projeto e colando-o em um novo Short Location. E funcionou para mim.

Por exemplo,

Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app
Crime_Master_GoGo
fonte
0

Fechar o Android Studio e abri-lo novamente resolveu esse problema no meu caso.

De uma chance. Eu sei que não é a solução ou resposta certa, mas funciona. Não tenho certeza sobre a causa raiz. Seria ótimo se alguém pudesse compartilhar isso.

Sunil Purushothaman
fonte
0

Eu estava importando um aplicativo Android no Android Studio (Gradle versão 2.10) do Eclipse. As imagens desenhadas não são suportadas, então remova manualmente essas imagens e cole algumas imagens PNG.

E também atualize o importador de drawable Android a partir do repositório Android. Em seguida, limpe e reconstrua o aplicativo e ele funcionará.

Muru
fonte
0

Este erro foi causado por mim por causa do caminho onde meu projeto estava localizado. Havia um espaço em branco em uma pasta, por exemplo,

Folder\Another Folder\MyAndroidProjects\...

Alterar para Folder\AnotherFolder\MyAndroidProjects\...e ressincronizar o Gradle resolveu isso para mim.

Marcus
fonte
0

Eu também enfrentei esse problema, e ele não foi resolvido reformatando a imagem, embora fosse uma imagem de um aplicativo de projeto do Google, e só foi resolvido por:

Movendo o arquivo do projeto para a partição diretamente

Tente. Isso pode te ajudar.

Dasser Basyouni
fonte
0

No meu caso, cheguei à solução em duas etapas:

  1. Mantenha o nome do projeto, o nome do pacote e os nomes das pastas curtos, porque se o nome do diretório exceder 255 caracteres, ocorrerá o erro mergeResource.
  2. Mantenha seus drawables nas pastas drawable. Qualquer arquivo drawable como .jpg e .png fora das pastas drawable gera o erro de pasta mergeResource.
DiRiNoiD
fonte
255 caracteres? Qual plataforma? Linux? Mac?
Peter Mortensen
0

Eu também estou sofrendo do mesmo problema. No meu caso, acabei de copiar a imagem para a pasta drawable, então o Android Studio está mostrando o erro "Falha no processamento de alguns arquivos".

Meu problema com relação à imagem só porque isso imagem foi salva de um aplicativo da minha câmera customizada no formato .png. E, para fins de teste, copiei-o na pasta drawable.

Depois disso, testei salvar a imagem como .jpg. Não estava dando erro nenhum. Isso significa que a câmera, por padrão, suporta o formato ".jpg".

Finalmente percebi duas coisas:

  1. A câmera, por padrão, suporta o formato ".jpg"

  2. Sem usar ferramentas de imagem, não altere os formatos de imagem (mesmo programaticamente).

Kona Suresh
fonte
file extension! = formato de arquivo Você pode nomear um arquivo como quiser - não mudará seu formato.
O incrível janeiro de
Não estou entendendo o que você está tentando dizer !. Minha imagem foi tirada do aplicativo de câmera personalizado e salva como .png de maneira programática. Então, quando adicionei essa imagem à pasta drawable, a compilação falhou. ao salvar a imagem do meu aplicativo de câmera como .jpg não dará o erro.
Kona Suresh
Entendi sua resposta da seguinte maneira: seu aplicativo criou um jpg, mas nomeou-o "png" e você ficou surpreso por não funcionar.
O incrível janeiro
0

Basta adicionar isso ao arquivo local.properties do seu projeto:

BUILD_DIR=C\:\\Tmp

(O erro no Windows é devido a um caminho longo, então dei o caminho para uma pasta temporária.)

RATHI
fonte
0

Para mim, é porque um dos meus arquivos .png é na verdade um arquivo .psd. Salve-o novamente em um arquivo PNG real e será corrigido.

Kai Wang
fonte
0

Para mim, era um arquivo PNG corrompido .

Vá para a sua respasta e tente abrir todas as imagens. Quando você encontrar uma imagem que não pode ser aberta, substitua-a por uma boa imagem.

Floris M
fonte
-1

Para resolver este problema, você deve usar drawable -> novo -> ativo de imagem e, em seguida, adicionar suas imagens. Você encontrará então a pasta mipmap que contém suas imagens, e você pode usá-la por @ mibmab / img.

Wessam Hassan Ragab
fonte