任务&应用程序执行失败:mergeDebugResources' Crunching Cruncher .... png失败了

时间:2015-06-10 18:35:02

标签: android gradle build

我已将一些格式为* .png的图片添加到我的drawable目录中,并将其与布局相关联。但每当我尝试构建它时,都会出现错误

  

" ...... 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个标志,这也不是问题:/

提前谢谢你:)

32 个答案:

答案 0 :(得分:128)

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

这是Android Studio指向的问题。

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

答案 1 :(得分:116)

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

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

例如,我从以下项目移动了项目:

D:/Android/Apps/AndroidStudioProject/AppName

D:/Android/AppName

答案 2 :(得分:53)

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

Android Studio在使用AAPT(Android资产包装工具)编译资源包时会抛出错误,因此您只需使用GIMPPaint等图像编辑器工具来保存相应的延伸。一切都完成后重建您的项目。

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

Enter image description here

Enter image description here

答案 3 :(得分:20)

最佳解决方案是在 build.gradle 中更改 buildDir

例如:

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

重建和快乐编码。

答案 4 :(得分:20)

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

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

答案 5 :(得分:9)

在我的情况下,我通过更改我的库文件解决了这个问题,因为我犯了一个愚蠢的错误,就是添加了同一个库的两个不同版本。

由于原因各有不同,我根据问题找到了解决此问题的以下方法:

  1. 资源不匹配

  2. 资源中缺少属性,错误标记等

  3. 样式问题

  4. 样式中缺少名称

  5. 资源和图书馆的重复

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

  7. 执行aapt命令

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

  9. 只需Clean Project的帮助。

    1. 即使在某些情况下,重新启动Android Studio也可以解决问题。

答案 6 :(得分:4)

就我而言,当我创建9.png文件时,我的原始PNG文件使用了绘制9.png行的边距,从而创建了一个错误的9.png文件。尝试为PNG文件添加一些余量。

答案 7 :(得分:4)

如果您正在运行Linux,请尝试以下操作:

sudo apt-get install lib32stdc++6 lib32z1

来自here

答案 8 :(得分:4)

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

执行以下步骤。

  1. 将您的图像源文件从Android Studio复制到桌面。
  2. 使用Paint打开文件。
  3. 将文件另存为扩展名.png
  4. 从您复制的Android Studio中删除现有源文件。
  5. 添加您通过Paint重命名的新创建的文件。
  6. 问题解决了:))

答案 9 :(得分:3)

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

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

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

答案 10 :(得分:3)

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

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

答案 11 :(得分:2)

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

有时,它可能是由XML或资源文件的错误命名引起的。

至少,对我来说,通过更改名称解决了这个问题。

答案 12 :(得分:2)

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

答案 13 :(得分:1)

“运算”过程是图像准备过程,这意味着图像文件出现问题。在我的情况下,我有一个PNG文件,这不是一个真正的PNG文件。

我的解决方案:

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

  1. 要安装PIL库,请运行:pip install pillow
  2. 将以下Python代码保存在要转换的图像文件夹中的.py文件中。
  3. 将脚本中的 from_format,to_format 变量调整为您需要的任何内容。
  4. 运行脚本: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())
    
  5. 如果您想了解有关Image模块的更多信息:http://effbot.org/imagingbook/image.htm

答案 14 :(得分:1)

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

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

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

答案 15 :(得分:1)

我更改了应用的位置并将其复制到了短路径。 您可以通过复制项目并将其粘贴到新的短位置来实现。 而且,它对我有用。

例如,

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

答案 16 :(得分:1)

  

档案>使高速缓存/重新启动无效

答案 17 :(得分:1)

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

问题出在Gradle build-cache的路径上,它包含西里尔字符,比如

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

所以我将用户的文件夹重命名为“Ivan”,问题就消失了。

答案 18 :(得分:1)

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

  1. 从drawable中删除了所有内容
  2. 试图运行(这显然导致了另一个构建错误,因为它缺少对文件的引用
  3. 将图像重新添加到文件夹,重新构建项目,运行它,然后它运行正常。
  4. 我不知道为什么这对我有用,但确实如此。祝你好运,我们称之为Android Studio。

答案 19 :(得分:1)

这似乎是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

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

答案 20 :(得分:0)

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

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

答案 21 :(得分:0)

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

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

答案 22 :(得分:0)

关闭Android Studio并再次打开在我的案例中解决了这个问题。

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

答案 23 :(得分:0)

对我来说,这是因为我的一个.png文件实际上是一个.psd文件。将其重新保存为真正的PNG文件,并且已修复。

答案 24 :(得分:0)

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

BUILD_DIR=C\:\\Tmp

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

答案 25 :(得分:0)

我也遇到了同样的问题。在我的情况下,我只是将图像复制到drawable文件夹,然后Android Studio显示错误“某些文件崩溃失败”。

我对图像的问题只是因为图像是从.png格式的自定义相机应用程序中保存的。为了测试目的,我将其复制到drawable文件夹中。

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

最后我意识到了两件事:

  1. 默认情况下,相机支持“.jpg”格式

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

答案 26 :(得分:0)

在我的情况下,我分两步到达解决方案:

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

答案 27 :(得分:0)

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

直接将项目文件移至分区

试试吧。它可能会对你有帮助。

答案 28 :(得分:0)

由于我的项目所在的路径,此错误是由我造成的。一个文件夹中有一个空格,例如

Folder\AnotherFolder\MyAndroidProjects\...

将其更改为{{1}}并重新同步Gradle为我解决了这个问题。

答案 29 :(得分:0)

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

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

答案 30 :(得分:0)

要解决此问题,您应该使用drawable - >新的 - >图像资产,然后添加您的图像。然后,您将发现mipmap文件夹包含您的图像,您可以使用@ mibmab / img。

答案 31 :(得分:-2)

  1. 查看文件夹drawable-hdpi,drawable-mdpi,drawable-xhdpi和 等等。
  2. 如果位图文件错误,请将其删除并重新保存。
  3. 转到Build-> Rebuild Project