Eclipse向Android Studio迁移non-zero exit value 42

错误信息:

Execution failed for task":ModuleName:mergeDebugResources"

xxxx.9.png:Error:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process 'command .......aapt.exe' finished with non-zero exit value 42.

non-zero exit value 42,我在Stack Overflow上只找到2~3篇相关的帖子,对这个是解释是“使用aapt.exe校验时,文件名显示的格式与文件本身的格式不对应”。

我在项目迁移的时候有两个地方遇到了这个问题,第一是项目中存在直接把.jpg格式的图片强制改成.png的,这个容易理解;

另一种情况是.9.png图片报错。先来看看这张报错的图片:.


xxx.9.png

细心的朋友应该能发现,这张.9.png四周并没有“黑线”,但它在Eclipse里确实表现良好,拉伸之后没有失真,所以应该是一张确确实实的.9.png。

这有两种可能:一是这张图是从apk解压出来的文件中拿来的,而android在进行APK编译的时候会去掉.9.png中的黑线;二是通过其他第三方软件,比如xUtilmate等工具抹除了黑线。

这就导致Android Studio通过aapt.exe对png图片校验不通过。

你需要将图片的扩展名改回.png,并且重新绘制和生成.9.png才能在Android Studio当中使用。

这种方法在出问题的.9.png图较少的时候适用,但是如果你的项目里有几百张这样的.9.png,你是不是想砸电脑?

当我试图寻找一种简便的方式来批量解决这个问题的时候,我发现国内有位愤青同学也遇到了类似的问题,并且从国外某个论坛上找到了一种疑似可行的方法,并且一路从CSDN骂到百度贴吧;又从百度贴吧骂到ThinkSAAS,基本上把国内的论坛骂了个遍。。他的方法是

在build.gradle,android{}域中加上

aaptOptions.cruncherEnabled = false

aaptOptions.useNewCruncher = false

我发现我在android studio1.51中,这两句应该这么写:


可是非常遗憾,我加了之后并没有效果,可能跟gradle版本有关系。

如果大家找到可以批量解决这个问题的方法,希望能与我分享。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,118评论 25 709
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,614评论 2 45
  • 为什么需要启动模式 Android系统使用任务栈的结构存放Activity的实例,众所周知,栈结构遵循先进后出的执...
    一只小松阅读 353评论 0 1
  • 目录 谈谈英语学习——以背单词为引 英语各项技能浅析——听、说、读、写、译 英语具体技能培训方法——听与说 英语具...
    坠落的晨光阅读 7,542评论 8 259
  • 从出生那一刻起,我们就被置于各种各样的人际关系之中—亲子、同学、朋友、同事、两性关系等,因为没有人能独自生存,于是...
    妙所阅读 640评论 1 14