Execution failed for task 'app:mergeDebugResources' Crunching Cruncher....png failed
AndroidGradleBuildAndroid Problem Overview
I've added some pictures with the format *.png to my drawable-directory and linked it with the layouts. But every time when I tried to build it, there appears an error
> "...Crunching Crunsher ...png failed"
Following is the output of the 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
I tried to clean the project, rebuild it, refresh the dependencies via "gradlew clean build --refresh-dependencies", nothing worked. I've checked the dependencies in the build.gradle file but nothing seems creating the error.
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'
}
Do you've got an idea, what's the source of the error? The filepath is also not too long and everytime unter 256 signs, that also not the problem :/
Thank you in advance :)
Android Solutions
Solution 1 - Android
In my case, the error was caused by a PNG file I added to the drawable folder. I had changed its extension from jpg to png by changing the text (in an inproper way) and then uploading it as PNG.
This was the problem Android Studio was pointing to.
I fixed this problem and got the error to disappear by changing the file extension using the Paint.NET tool or any other tool (proper way), and then uploading it to the drawable folder.
Solution 2 - Android
I fixed this issue by moving the project to the outer directory, and it then compiled successfully.
It was due to the long path of the project directory.
For example, I moved the project from:
D:/Android/Apps/AndroidStudioProject/AppName
to
D:/Android/AppName
Solution 3 - Android
This is due to adding an image in drawable which has some extension like (.jpg), and you have changed or saved that to a .png format (this error will occur while changing the image format manually without using an editor tool).
Android Studio will throws an error while compiling the resource package using AAPT (Android Asset Packaging Tool), so all you need to do is use some image editor tools like GIMP or Paint to save the extension accordingly. Rebuild your project once everything is done.
For example: open your image in Paint (drag and drop your image to open it) → menu File → Save As → Save as Type → select your required type from the dropdown like I have shown in the below pictures:
Solution 4 - Android
In my case the solution was simple. I moved the entire project to another location where the path is short.
The problem was caused by long directory names and file names.
Solution 5 - Android
The best solution is to change buildDir in build.gradle:
For example:
allprojects {
buildDir = "C:/tmp/${rootProject.name}/${project.name}"
repositories {
jcenter()
}
}
Rebuild and happy coding.
Solution 6 - Android
In my case, I solved this problem by simply changing my library file as I made a silly mistake of adding two different versions of the same library.
As this can be due to varied reasons, I found out the following ways to solve this issue as per the problem:
-
Mismatch of resources
-
Missing attributes, wrong tags, etc. in resources
-
Issue in styles
-
Missing name in styles
-
Duplicacy of resources and libraries
-
Sometimes it can even be solved by changing the compatible library in build.gradle
-
Executing the
aapt
command -
Renaming the extension from .jpg to .png
-
Simply with the help of
Clean Project
. -
Even in some cases, restarting Android Studio can solve the problem.
Solution 7 - Android
This is because your PNG file is not supported or else you renamed your file directly.
Do the following steps.
- Copy your image source file from Android Studio to your desktop.
- Open the file with Paint.
- Save file as extension .png
- Delete the existing source file from Android Studio which you copied.
- Add the newly created file which you renamed via Paint.
Problem solved :)
Solution 8 - Android
In my case, when I created a 9.png file, my original PNG file was using the margin where the 9.png line is drawn, creating a bad 9.png file. Try to add some margin to your PNG file.
Solution 9 - Android
Solution 10 - Android
The best answer is already given in the gradle output:
* Try:
Run with --stacktrace option to get the stack trace.
Open the Terminal in Android Studio and run gradlew :app:mergeDebugResources --stacktrace
.
(In my case it was the Windows 240 char limit), but it should give you the root cause for any other issue just as well.
Solution 11 - Android
In my case, I believe this issue was to do with the length of the file path. UNIX and Windows systems impose a maximum path length of 255 and 260 characters respectively, and I believe the crunch process fails when assigning to a dynamically-specified path. So, even if the quoted path lengths in the error message are shorter than the limit (mine was only 187 within a Windows build environment), I think the crunch utility may internally specify a longer path, even if just temporarily.
You may determine whether this is the source of error by moving your project to the root-most directory on your file system, then attempt recompiling.
Solution 12 - Android
I noticed downgrading Gradle build tools to 1.2.3 solved my problem of the Crunching PNG error, but on 1.5.0 the problem continues.
Solution 13 - Android
I tried to rebuilt, restart, clean, update Gradle, etc. However, none of them worked for me.
Sometimes, it can be caused by a wrong naming for an XML or resource file.
At least, for me, that problem was solved by changing the name.
Solution 14 - Android
I had put my images into my drawable folder at the beginning of the project, and it would always give me this error and never build so I:
- Deleted everything from drawable
- Tried to run (which obviously caused another build error because it's missing a reference to files
- Re-added the images to the folder, re-built the project, ran it, and then it worked fine.
I have no idea why this worked for me, but it did. Good luck with this mess we call Android Studio.
Solution 15 - Android
The Crunching process is the image preparation process, which means something is wrong with your image files. In my case I had a PNG file which was not really a PNG file.
My solution:
I converted all my images to PNG running a super simple Python script from within the image folder, so in total all you need to do is:
-
In order to install the PIL library, run:
pip install pillow
-
Save the below Python code in a .py file within your images folder you want to convert.
-
Adjust the from_format, to_format variables in the script to whatever you need.
-
Run 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())
And if you want read more about the Image module: http://effbot.org/imagingbook/image.htm
Solution 16 - Android
I faced this problem when I copied my images (no matter JPEG or PNG) into the drawable folder manually. There might be different kinds of temporary solutions to this problem, but one best eternal way is to use the Drawable importer plugin for Android studio.
Install it by going to: menu File → Settings → Plugins → Browse Repositories → search "Drawable". You'll find Drawable importer as the first option. Click install on the right panel.
Use it by right clicking on the Drawable resource folder and then new. Now you can see four new options added to the bottom of the list, and among those you will find your appropriate option. In this case the "Batch drawable import" would do the trick.
Solution 17 - Android
I changed the location of the app and copied it to a short path. You can do that by just copying your project and pasting it to a new Short Location. And, it worked for me.
For example,
Old_path: c/:user/android_studio_project/your_app
New_path: c/:your_app
Solution 18 - Android
I got this issue after migration to Gradle 3.3, on Windows (with gradle-2.14.1 everything was fine).
The problem was in the path to the Gradle build-cache, which contains Cyrillic characters, like
C:\Users\Иван\.android\build-cache
So I renamed the user's folder to "Ivan", and the problem was gone.
Solution 19 - Android
It seems to be a nasty problem of Gradle. We just upgraded from 2.14 to 3.3 and our build server couldn't build any more (a local build in Android Studio worked).
Error with too long path shows for example:
> C:\Windows\System32\config\systemprofile.gradle\caches\3.3\scripts-remapped\build_bonsjy48fqq8sotonpgrvhswt\36ejadunoxgw3iugkh95lqw\projedd7e29570ae79482d0308d82f4e346b\classes\build_bonsjy48fqq8sotonpgrvhswt$_run_closure1$_closure8$_closure13$_closure14$_closure15.class
We had to create a local user account for the service that ran as system service for years... Now it saves under C:\Users... which is much shorter as the system profile path.
Solution 20 - Android
> File > Invalidate Caches / Restart
Solution 21 - Android
Closing Android Studio and opening again solved this issue in my case.
Give it a try. I know it is not the right solution or answer, but it works. I am not sure about the root cause. It would be great if someone can share that.
Solution 22 - Android
I was importing an Android application in Android Studio (Gradle version 2.10) from Eclipse. The drawable images are not supported, then manually remove those images and paste some PNG images.
And also update the Android drawable importer from the Android repository. Then clean and rebuild the application, and then it works.
Solution 23 - Android
This error was caused for me because of the path where my project was located. There was a blank space in one folder, for example,
Folder\Another Folder\MyAndroidProjects\...
Changing it to Folder\AnotherFolder\MyAndroidProjects\...
and resynchronising Gradle resolved this for me.
Solution 24 - Android
I have faced this problem also, and it has not been solved by reformatting the image although it was an image from a project app of Google, and it was only solved by:
Moving the project file to the partition directly
Try it. It might help you.
Solution 25 - Android
In my case I reached the solution in two steps:
- Keep your project name, package name, folder names short, because if the directory name exceeds 255 characters it gives the mergeResource error.
- Keep your drawables in the drawable folders. Any drawable file such as .jpg and .png outside the drawable folders throws the mergeResource folder error.
Solution 26 - Android
I am also suffering from the same issue. In my case I just copied the image to the drawable folder, then Android Studio is showing the error "Some file crunching failed".
My problem regarding to image only because that image was saved from the one of the my customized camera application in .png format. And for testing purposes I copied it into the drawable folder.
After that I tested saving the image as .jpg. It was not giving any error. That means the camera by default supports the ".jpg" format.
Finally I realized two things:
-
The camera by default supports the ".jpg" format
-
Without using image tools, don't change the image formats (even programmatically).
Solution 27 - Android
Just add this to your local.properties file of your project:
BUILD_DIR=C\:\\Tmp
(The error in Windows is due a long path, so I gave the path to one temporary folder.)
Solution 28 - Android
For me, it is because one of my .png files is actually a .psd file. Resave it to real PNG file, and it is fixed.
Solution 29 - Android
For me, it was a corrupted PNG file.
Go to your res
folder and try to open every image. When you find an image which can't be opened, replace it with a good image.
Solution 30 - Android
It took a lot of investigation to figure this out, but the root cause of this issue, in my case, turned out to be that the processor of my dev machine is no longer supported by Android Studio. Please see this this issue for more details.
The issue manifests itself as errors related to *.9.png
files, but in reality the problem is that Android Studio no longer works on processors that don't support SSSE3 instructions (AMD Phenom, Athlon and older processors, for instance). There doesn't seem to be any workaround at this time.
Solution 31 - Android
As this can be cause by many different issues for me it was in several layout files I had defined the layout_width
and layout_height
in the parent layout and the actual implementing layout below.
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:bind="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
Best way to find out is running gradle manually with a Stacktrace
Solution 32 - Android
To solve this problem you should use drawable -> new -> image asset and then add your images. You will then find the mipmap folder contains your images, and you can use it by @mibmab/img.
Solution 33 - Android
- Look at the folders drawable-hdpi, drawable-mdpi, drawable-xhdpi and so on.
- If there is a wrong bitmap file, Delete it and resave.
- Go to Build->Rebuild Project