錯(cuò)誤信息:
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篇相關(guān)的帖子康愤,對(duì)這個(gè)是解釋是“使用aapt.exe校驗(yàn)時(shí)佛掖,文件名顯示的格式與文件本身的格式不對(duì)應(yīng)”掸绞。
我在項(xiàng)目遷移的時(shí)候有兩個(gè)地方遇到了這個(gè)問(wèn)題,第一是項(xiàng)目中存在直接把.jpg格式的圖片強(qiáng)制改成.png的牧氮,這個(gè)容易理解骗露;
另一種情況是.9.png圖片報(bào)錯(cuò)掠拳。先來(lái)看看這張報(bào)錯(cuò)的圖片:.
細(xì)心的朋友應(yīng)該能發(fā)現(xiàn),這張.9.png四周并沒(méi)有“黑線”噪裕,但它在Eclipse里確實(shí)表現(xiàn)良好,拉伸之后沒(méi)有失真股毫,所以應(yīng)該是一張確確實(shí)實(shí)的.9.png膳音。
這有兩種可能:一是這張圖是從apk解壓出來(lái)的文件中拿來(lái)的,而android在進(jìn)行APK編譯的時(shí)候會(huì)去掉.9.png中的黑線铃诬;二是通過(guò)其他第三方軟件祭陷,比如xUtilmate等工具抹除了黑線。
這就導(dǎo)致Android Studio通過(guò)aapt.exe對(duì)png圖片校驗(yàn)不通過(guò)趣席。
你需要將圖片的擴(kuò)展名改回.png兵志,并且重新繪制和生成.9.png才能在Android Studio當(dāng)中使用。
這種方法在出問(wèn)題的.9.png圖較少的時(shí)候適用宣肚,但是如果你的項(xiàng)目里有幾百?gòu)堖@樣的.9.png想罕,你是不是想砸電腦?
當(dāng)我試圖尋找一種簡(jiǎn)便的方式來(lái)批量解決這個(gè)問(wèn)題的時(shí)候霉涨,我發(fā)現(xiàn)國(guó)內(nèi)有位憤青同學(xué)也遇到了類似的問(wèn)題弧呐,并且從國(guó)外某個(gè)論壇上找到了一種疑似可行的方法,并且一路從CSDN罵到百度貼吧嵌纲;又從百度貼吧罵到ThinkSAAS,基本上把國(guó)內(nèi)的論壇罵了個(gè)遍俘枫。。他的方法是
在build.gradle逮走,android{}域中加上
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
我發(fā)現(xiàn)我在android studio1.51中鸠蚪,這兩句應(yīng)該這么寫:
可是非常遺憾,我加了之后并沒(méi)有效果师溅,可能跟gradle版本有關(guān)系茅信。
如果大家找到可以批量解決這個(gè)問(wèn)題的方法,希望能與我分享墓臭。