在将一个Eclipse的项目转移到AndroidStudio的过程中,碰到了的问题如下:
Error:Execution failed for task ':learnChinese:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:
从报错来看可以定位到时资源文件出问题了,一个在Android 上运行好好的项目怎么会在AndroidStudio里面出现这种问题,顿觉头大了,查阅各种资料后来才发现了原来是.9.png图片造成的,真是作孽啊~
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png,也就是说项目资源文件夹中,只要图片的文件后缀是.9.png的,就说明这是点9图片,当我们用Eclipse等编译的时候,它遇到文件后缀是.9.png的文件,首先检查它实际上是不是点9图片,如果是,按点9图片处理;如果不是,按找默认图片处理。也就是说Eclipse自动帮我们完成了转化,容忍了我们的图片格式错误。
AndroidStudio使用的是android-maven-plugin插件,在aAndroidStudio下报错的原因,是因为声明为点9图片的文件,实际上不是真正的点9图片,解析图片出错。android-maven-plugin插件会严格检查图片格式,如果不匹配就报错。
解决方法:
去除掉PNG合法性检测,在build.gradle里的buildToolsVersion下面添加以下两句:
android {
...
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
...
}