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

Posted

技术标签:

【中文标题】任务 \'app:mergeDebugResources\' Crunching Cruncher 执行失败....png 失败【英文标题】:Execution failed for task 'app:mergeDebugResources' Crunching Cruncher....png failed任务 'app:mergeDebugResources' Crunching Cruncher 执行失败....png 失败 【发布时间】:2015-08-26 04:38:08 【问题描述】:

我已将一些格式为 *.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

我试图清理项目,重建它,通过“gradlew clean build --refresh-dependencies”刷新依赖项,但没有任何效果。我已经检查了 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 个标志,这也不是问题:/

提前谢谢你:)

【问题讨论】:

你在这方面还有什么运气吗?我也有同样的经历。 我已经通过在这里分享解决方案解决了这个问题 --> ***.com/questions/22583418/… 错误:Windows 上的文件路径太长,请保持在 240 个字符以下 尝试为您的项目使用较短的路径。就我而言,我已将项目源从其他文件夹移动到桌面,从桌面打开项目后,此问题自动解决。 @LuckyRana 对我同样有效 正如@LuckyRana 所说,更少的字符很重要,我不必更改目录,我的项目名称太长,所以让它更短并且有效。如果有人遇到问题并且他们的项目已经在根目录中,这可能会有所帮助。 【参考方案1】:

在我的情况下,错误是由我添加到可绘制文件夹的 PNG 文件引起的。我通过更改文本(以不正确的方式)将其扩展名从 jpg 更改为 png,然后将其上传为 PNG。

这就是 Android Studio 所指出的问题。

我解决了这个问题,并通过使用Paint.NET 工具或任何其他工具(正确的方式)更改文件扩展名,然后将其上传到可绘制文件夹来使错误消失。

【讨论】:

提示:如果您在 mac os 上,您可以打开终端并从图像文件夹运行以下命令:'sips -s format png *.png --out 。它会正确地将所有带有 .png 后缀的文件转换为真正的 PNG 文件:) 同样的事情发生在我身上我也将扩展名从 psd 重命名为 png 并且它无法运行。得到了这个确切的错误信息。 这个问题也为我转载。非常感谢您的回答。 @cassioso 谢谢好友。 谢谢哥们.. 解决了我的问题,方法与您提到的完全相同。【参考方案2】:

我通过将项目移动到外部目录来解决此问题,然后编译成功。

这是由于项目目录的路径过长。

例如,我将项目从:

D:/Android/Apps/AndroidStudioProject/AppName

D:/Android/AppName

【讨论】:

我不知道为什么......但这是唯一对我有用的东西。非常感谢! 是的,我无法解释原因。但这对我来说也很好 可能是由于长路径问题。 在 Windows 7 x64、Gradle 2.14.1、Android 构建工具 24.0.2 上遇到了同样的问题。我的资源文件的完整路径太长(243 个符号)。当我用项目重命名文件夹时,它解决了问题。 也为我工作!。在 Android studio 2.2.0 上遇到问题【参考方案3】:

这是由于在 drawable 中添加了具有某些扩展名(如 (.jpg))的图像,并且您已将其更改或保存为 .png 格式(在不使用编辑器工具的情况下手动更改图像格式时会发生此错误)。

Android Studio 在使用 AAPT (Android Asset Packaging Tool) 编译资源包时会抛出错误,所以你需要做的就是使用一些图像编辑器工具,如GIMP 或Paint 来相应地保存扩展。一切完成后重建您的项目。

例如:在画图中打开你的图像(拖放你的图像来打开它)→菜单文件另存为另存为类型 em> → 从下拉列表中选择您需要的类型,如下图所示:

【讨论】:

@krish 我用 gimp 更改了扩展名,但它似乎无法以任何其他方式工作,请帮忙。 使用 Paint 工具来改变图像的扩展,非常简单。我上面已经解释了如何使用它...... 我用 Preview(在 Mac 上)更改了图像扩展名,效果很好,非常感谢! 注意事项:如果您的图像中有任何透明度,使用 Paint 将删除透明度。 这真的很有帮助【参考方案4】:

就我而言,解决方案很简单。我将整个项目移到了另一个路径较短的位置。

问题是由长的目录名和文件名引起的。

【讨论】:

OP 确实说文件路径不长。如果您想就此向他提出质疑,也许评论会更好。 这与 Bamboo 在 Windows Server 上运行时的 Windows 路径长度限制有关。解决方案:在 Linux 上构建!【参考方案5】:

最好的解决办法是在build.gradle中改变buildDir

例如:

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

重建并快乐编码。

【讨论】:

比移动项目容易得多。不错! 尝试了该解决方案,它可以工作,但现在我无法从 Visual Studio 2015 部署到我的手机。收到以下错误“找不到可部署的 apk。您可能需要构建您的项目。”跨度> 【参考方案6】:

就我而言,我通过简单地更改我的库文件解决了这个问题,因为我犯了一个愚蠢的错误,即添加同一个库的两个不同版本。

由于这可能是由于多种原因,我根据问题找到了以下方法来解决这个问题:

    资源不匹配

    资源中缺少属性、错误标签等

    样式问题

    样式中缺少名称

    资源和库的重复

    有时甚至可以通过更改 build.gradle 中的兼容库来解决

    执行aapt命令

    将扩展名从 .jpg 重命名为 .png

    只需借助Clean Project

      即使在某些情况下,重启 Android Studio 也能解决问题。

【讨论】:

【参考方案7】:

这是因为您的 PNG 文件不受支持,或者您直接重命名了文件。

执行以下步骤。

    将图像源文件从 Android Studio 复制到桌面。 用画图打开文件。 将文件另存为扩展名 .png 从您复制的 Android Studio 中删除现有源文件。 添加您通过 Paint 重命名的新创建文件。

问题解决了:)

【讨论】:

我使用 tinypng.com 重新生成 png 图像【参考方案8】:

在我的例子中,当我创建一个 9.png 文件时,我的原始 PNG 文件使用了绘制 9.png 线的边距,从而创建了一个错误的 9.png 文件。尝试为您的 PNG 文件添加一些边距。

【讨论】:

是的,我的情况与此类似。我正在更改图像文件,当我保存它时,它已损坏。我只需要重新调整图像并重新保存即可。【参考方案9】:

如果你运行的是 Linux,试试这个:

sudo apt-get install lib32stdc++6 lib32z1

来自here。

【讨论】:

【参考方案10】:

最佳答案已经在 gradle 输出中给出:

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

在 Android Studio 中打开终端并运行 gradlew :app:mergeDebugResources --stacktrace。 (在我的情况下,它是 Windows 240 字符限制),但它也应该为您提供任何其他问题的根本原因。

【讨论】:

【参考方案11】:

就我而言,我认为这个问题与文件路径的长度有关。 UNIX 和 Windows 系统分别规定最大路径长度为 255 和 260 个字符,我相信当分配给动态指定的路径时,紧缩过程会失败。因此,即使错误消息中引用的路径长度短于限制(在 Windows 构建环境中我的路径长度仅为 187),我认为 crunch 实用程序可能会在内部指定更长的路径,即使只是暂时的。

您可以通过将项目移动到文件系统的最根目录来确定这是否是错误源,然后尝试重新编译。

【讨论】:

谢谢。我有同样的问题,但没有意识到。该错误消息并未将路径长度指示为问题,并且它打印的文件的路径长度远低于 255。不过,将 env var GRADLE_USER_HOME 设置为非常短的内容可以解决我的构建机器上的问题。【参考方案12】:

我尝试重建、重新启动、清理、更新 Gradle 等。但是,它们都不适合我。

有时,这可能是由于对 XML 或资源文件的命名错误造成的。

至少,对我来说,这个问题是通过改名解决的。

【讨论】:

【参考方案13】:

我注意到 降级 Gradle 构建工具到 1.2.3 解决了我的 Crunching PNG 错误问题,但在 1.5.0 上问题仍然存在。

【讨论】:

【参考方案14】:

文件 > 使缓存无效/重新启动

【讨论】:

【参考方案15】:

我在项目开始时将图像放入我的可绘制文件夹中,它总是会给我这个错误并且永远不会构建所以我:

    从可绘制对象中删除所有内容 尝试运行(这显然导致另一个构建错误,因为它缺少对文件的引用 将图像重新添加到文件夹中,重新构建项目,运行它,然后它就可以正常工作了。

我不知道为什么这对我有用,但确实有效。祝你好运,我们称之为 Android Studio。

【讨论】:

【参考方案16】:

处理过程是图像准备过程,这意味着您的图像文件有问题。就我而言,我有一个 PNG 文件,但它并不是真正的 PNG 文件。

我的解决方案:

我从图像文件夹中运行一个超级简单的 Python 脚本将我所有的图像转换为 PNG,所以总的来说,您需要做的就是:

    为了安装 PIL 库,运行:pip install pillow

    将以下 Python 代码保存在要转换的图像文件夹中的 .py 文件中。

    将脚本中的 from_format, to_format 变量调整为您需要的任何变量。

    运行脚本: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())
    

如果您想了解更多有关图像模块的信息:http://effbot.org/imagingbook/image.htm

【讨论】:

【参考方案17】:

当我手动将图像(无论是 JPEG 还是 PNG)复制到可绘制文件夹中时,我遇到了这个问题。这个问题可能有不同种类的临时解决方案,但最好的永恒方法是使用Drawable importer plugin for Android studio。

通过以下方式安装它:菜单文件设置插件浏览存储库 → 搜索“Drawable ”。您会发现 Drawable 导入器是第一个选项。点击右侧面板上的安装。

通过右键单击可绘制资源文件夹然后新建来使用它。现在您可以看到列表底部添加了四个新选项,您将在其中找到合适的选项。在这种情况下,“Batch drawable import”就可以解决问题。

【讨论】:

【参考方案18】:

在 Windows 上迁移到 Gradle 3.3 后,我遇到了这个问题(使用 gradle-2.14.1 一切都很好)。

问题出在 Gradle 构建缓存的路径中,其中包含西里尔字符,例如

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

于是我把用户的文件夹重命名为“Ivan”,问题就解决了。

【讨论】:

+1 但我们无法在构建服务器上解决问题。路径看起来不错,但不起作用。我们回到了旧的 gradle...:/【参考方案19】:

这似乎是 Gradle 的一个令人讨厌的问题。我们刚刚从 2.14 升级到 3.3,我们的构建服务器无法再构建(Android Studio 中的本地构建工作)。

路径太长的错误显示例如:

C:\的Windows \ system32 \设置\ systemprofile.gradle \缓存\ 3.3 \脚本-重映射\ build_bonsjy48fqq8sotonpgrvhswt \ 36ejadunoxgw3iugkh95lqw \ projedd7e29570ae79482d0308d82f4e346b \类\ build_bonsjy48fqq8sotonpgrvhswt $ $ _run_closure1 $ _closure8 $ _closure13 $ _closure14 _closure15.class P>

我们必须为多年来作为系统服务运行的服务创建一个本地用户帐户...现在它保存在 C:\Users... 下,它比系统配置文件路径短得多。

【讨论】:

【参考方案20】:

我更改了应用程序的位置并将其复制到一个短路径。 您只需复制您的项目并将其粘贴到新的短位置即可。 而且,它对我有用。

例如,

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

【讨论】:

【参考方案21】:

在我的情况下,关闭 Android Studio 并再次打开解决了这个问题。

试一试。我知道这不是正确的解决方案或答案,但它确实有效。我不确定根本原因。如果有人可以分享,那就太好了。

【讨论】:

【参考方案22】:

我正在从 Eclipse 导入 Android Studio(Gradle 版本 2.10)中的 Android 应用程序。不支持可绘制的图像,然后手动删除这些图像并粘贴一些 PNG 图像。

并且还从 Android 存储库更新 Android drawable 导入器。然后清理并重建应用程序,然后它就可以工作了。

【讨论】:

【参考方案23】:

这个错误是因为我的项目所在的路径对我造成的。例如,一个文件夹中有一个空格,

Folder\Another Folder\MyAndroidProjects\...

将其更改为 Folder\AnotherFolder\MyAndroidProjects\... 并重新同步 Gradle 为我解决了这个问题。

【讨论】:

【参考方案24】:

我也遇到过这个问题,虽然是谷歌项目应用的图片,但重新格式化图像并没有解决,只能通过以下方式解决:

直接将工程文件移动到分区

试试看。它可能会帮助你。

【讨论】:

【参考方案25】:

就我而言,我分两步解决了问题:

    保持项目名称、包名称、文件夹名称简短,因为如果目录名称超过 255 个字符,则会出现 mergeResource 错误。 将您的drawable 保存在drawable 文件夹中。可绘制文件夹之外的任何可绘制文件(例如 .jpg 和 .png)都会引发 mergeResource 文件夹错误。

【讨论】:

255 个字符?什么平台? Linux?麦克?【参考方案26】:

我也遇到了同样的问题。在我的情况下,我只是将图像复制到 drawable 文件夹,然后 Android Studio 显示错误 “Some file crunching failed”。

我关于图像的问题只是因为 图像是从我的自定义相机应用程序之一中以 .png 格式保存的。出于测试目的,我将其复制到可绘制文件夹中。

之后我测试了将图像保存为 .jpg。它没有给出任何错误。这意味着相机默认支持“.jpg”格式。

我终于明白了两件事:

    相机默认支持“.jpg”格式

    不使用图像工具,请勿更改图像格式(即使以编程方式)。

【讨论】:

文件扩展名 != 文件格式 您可以随意命名文件 - 它不会改变其格式。 我不明白你想说什么!。我的图像取自自定义相机应用程序并以编程方式保存为 .png。因此,当我将该图像添加到可绘制文件夹时,编译失败。当我的相机应用程序中的图像保存为 .jpg 时,它不会给出错误。 我这样理解您的回答:您的应用创建了一个 jpg 但将其命名为“png”,然后您惊讶地发现它不起作用。【参考方案27】:

只需将其添加到项目的 local.properties 文件中即可:

BUILD_DIR=C\:\\Tmp

(Windows中的错误是由于路径太长,所以我给出了一个临时文件夹的路径。)

【讨论】:

【参考方案28】:

对我来说,这是因为我的 .png 文件之一实际上是一个 .psd 文件。将其重新保存为真实的PNG文件,它是固定的。

【讨论】:

【参考方案29】:

对我来说,这是一个损坏的 PNG 文件

转到您的res 文件夹并尝试打开每张图片。当您发现无法打开的图像时,将其替换为好的图像。

【讨论】:

【参考方案30】:

经过大量调查才弄清楚这一点,但就我而言,这个问题的根本原因是我的开发机器的处理器不再受 Android Studio 支持。请参阅此this issue 了解更多详情。

问题表现为与*.9.png 文件相关的错误,但实际上问题是Android Studio 不再适用于不支持SSSE3 指令的处理器(例如,AMD Phenom、Athlon 和旧处理器) )。目前似乎没有任何解决方法。

【讨论】:

以上是关于任务 'app:mergeDebugResources' Crunching Cruncher 执行失败....png 失败的主要内容,如果未能解决你的问题,请参考以下文章

任务计划程序打开软件的原理

CELERY 定时任务

“异步任务然后等待任务”与“任务然后返回任务”[重复]

宏任务和微任务的执行顺序

宏任务和微任务

20230515学习笔记——js中的同步任务与异步任务,宏任务与微任务