前言:
前段时间,公司新项目开发完成。公司大佬仍了个eclipse的旧项目让我改。本着Android Studio开发更加快捷,方便的理念,大佬让我把项目转成studio的项目,方便日后维护更新。转完后发现出现下述问题。针对下述问题,总结可能出现的原因并给出解法方案。
▲ 异常log :
Android Studio:Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, see logs for details
▲ 问题分析一:
在构建Gradle的时候,Gradle会去检查一下是否修改过文件的后缀名。一般大多数是出现在图片上,.jpg修改成了.png就会出现这个问题
▲ 解决方案
如果是这个问题导致的,那就简单了,可以直接在build.gradle文件里添加以下代码,然后点击右上角的Sync Now同步一下即可,例如
android {
compileSdkVersion 23
buildToolsVersion "26.0.0"
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
defaultConfig {
minSdkVersion 5
targetSdkVersion 17
}
这两行代码意思是禁止gradle检查png的合法性
▲ 问题分析二:
在Android Studio相比Eclipse中会对.9图进行严格检查,部分.9图片是非法的就会出现上述问题
▲ 解决方案一
最简单,最冷暴力,最直接,最快捷的方法就是,将非法点9图的格式图片后缀修改成.png的格式(视实际情况使用)
▲ 解决方案二
上述的解决方法虽然可行,但是却违背了最初我们使用点9图的初衷。最好我们使用SDK/tools目录下的“draw9patch.bat”文件进行编辑,或者直接使用Android Studio的编辑器,将不合法的点9图修正即可。图形界面和编辑功能是一样的,以Android Studio为例,解决步奏如下
工程里直接打开报错的点9图,将下方工具栏的show bad patches选项和show content选项勾上。会看到如下图片
show bad patches表示查看图片中报错的区域,show content表示查看自动拉伸的那一部分。
根据点9图的绘制和制作方法,我们知道,四个边至少需要保留一个小黑点即可。以左侧和上侧为例,将其拉伸至一个小黑点,直至看不到报错的红线区域,保留下侧和右侧的拉伸区域,即图片修改完成。
如果发现点9图太大还是太小,可以拖动工具栏中“ZOOM”来调整大小,精确操作。
如果想精确查看点9图的变化拉伸区域,可以拖动“Patch scale”进行查看。
当然复杂的点9图片根据实际情况再做调整修改,这里不再展示,方法同理。
▲ 注意:
我们常常习惯于将图片文件存储在mipmap的文件夹下,而点9图不同,它是需要存放在drawable文件夹下