我已将一些格式为* .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个标志,这也不是问题:/
提前谢谢你:)
答案 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资产包装工具)编译资源包时会抛出错误,因此您只需使用GIMP或Paint等图像编辑器工具来保存相应的延伸。一切都完成后重建您的项目。
例如:在Paint中打开图像(拖放图像以打开它)→菜单文件→另存为→另存为类型→从下拉列表中选择您需要的类型,如下图所示:
答案 3 :(得分:20)
最佳解决方案是在 build.gradle 中更改 buildDir :
例如:
allprojects {
buildDir = "C:/tmp/${rootProject.name}/${project.name}"
repositories {
jcenter()
}
}
重建和快乐编码。
答案 4 :(得分:20)
就我而言,解决方案很简单。我将整个项目移动到路径较短的另一个位置。
问题是由长目录名和文件名引起的。
答案 5 :(得分:9)
在我的情况下,我通过更改我的库文件解决了这个问题,因为我犯了一个愚蠢的错误,就是添加了同一个库的两个不同版本。
由于原因各有不同,我根据问题找到了解决此问题的以下方法:
资源不匹配
资源中缺少属性,错误标记等
样式问题
样式中缺少名称
资源和图书馆的重复
有时甚至可以通过更改build.gradle中的兼容库来解决
执行aapt
命令
将扩展名从.jpg重命名为.png
只需Clean Project
的帮助。
答案 6 :(得分:4)
就我而言,当我创建9.png文件时,我的原始PNG文件使用了绘制9.png行的边距,从而创建了一个错误的9.png文件。尝试为PNG文件添加一些余量。
答案 7 :(得分:4)
答案 8 :(得分:4)
这是因为您的PNG文件不受支持,或者您直接重命名了文件。
执行以下步骤。
问题解决了:))
答案 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脚本,所以总的来说,你需要做的就是:
pip install pillow
运行脚本: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())
如果您想了解有关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文件夹中,它总是会给我这个错误而且永远不会构建,所以我:
我不知道为什么这对我有用,但确实如此。祝你好运,我们称之为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”格式。
最后我意识到了两件事:
默认情况下,相机支持“.jpg”格式
不使用图像工具,请勿更改图像格式(甚至以编程方式)。
答案 26 :(得分:0)
在我的情况下,我分两步到达解决方案:
答案 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)