任务‘ app: mergeDebugResources’执行失败 Crunching Cruncher... . png 失败

我已经添加了一些图片的格式 * 。Png 到我的绘图目录,并将其与布局链接起来。但是每次我尝试构建它的时候,都会出现一个错误

“ ... Crunching Crunsher... png 失败”

控制台的输出如下:

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

我试着清理项目,重新构建它,通过“ gralew clean build —— refresh-Depencies”刷新依赖关系,但是没有任何效果。我已经检查了 build.gradle 文件中的依赖项,但似乎没有任何东西造成错误。

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

你知道错误的来源是什么吗?文件路径也不太长,每次都在256个符号之下,这也不是问题:/

先谢谢你:)

244589 次浏览

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.

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:

  1. Mismatch of resources

  2. Missing attributes, wrong tags, etc. in resources

  3. Issue in styles

  4. Missing name in styles

  5. Duplicacy of resources and libraries

  6. Sometimes it can even be solved by changing the compatible library in build.gradle

  7. Executing the aapt command

  8. Renaming the extension from .jpg to .png

  9. Simply with the help of Clean Project.

    1. Even in some cases, restarting Android Studio can solve the problem.

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.

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:

  1. Deleted everything from drawable
  2. Tried to run (which obviously caused another build error because it's missing a reference to files
  3. 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.

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.

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 FileSave AsSave as Type → select your required type from the dropdown like I have shown in the below pictures:

Enter image description here

Enter image description here

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.

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.

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.

This is because your PNG file is not supported or else you renamed your file directly.

Do the following steps.

  1. Copy your image source file from Android Studio to your desktop.
  2. Open the file with Paint.
  3. Save file as extension .png
  4. Delete the existing source file from Android Studio which you copied.
  5. Add the newly created file which you renamed via Paint.

Problem solved :)

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

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:

  1. In order to install the PIL library, run: pip install pillow

  2. Save the below Python code in a .py file within your images folder you want to convert.

  3. Adjust the from_format, to_format variables in the script to whatever you need.

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

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.

  1. Look at the folders drawable-hdpi, drawable-mdpi, drawable-xhdpi and so on.
  2. If there is a wrong bitmap file, Delete it and resave.
  3. Go to Build->Rebuild Project

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

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.

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.

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.

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

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.

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.

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.

In my case I reached the solution in two steps:

  1. Keep your project name, package name, folder names short, because if the directory name exceeds 255 characters it gives the mergeResource error.
  2. Keep your drawables in the drawable folders. Any drawable file such as .jpg and .png outside the drawable folders throws the mergeResource folder error.

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.

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:

  1. The camera by default supports the ".jpg" format

  2. Without using image tools, don't change the image formats (even programmatically).

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

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.

File > Invalidate Caches / Restart

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.

If you're running Linux, try this:

sudo apt-get install lib32stdc++6 lib32z1

It is from here.

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.

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.

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