今天接到一个需求,要我打个包,心想多简单个事儿,兴冲冲的点开Android Studio,打开搁置了两个多月的项目,就在修改完代码准备一把梭(Run ' app ')的时候,控制台在编译打包的时候报出了这样一个错误:
一阵莫名其妙。多长时间没动过了,之前还是好的,现在咋报错了?难道代码也有保质期么?
点进去看下详细报错,全是如下报错“ERROR: Unable to open PNG file”,这个。。。从来没见过~~
二话不说,直接打开baidu,都是同样的原因+解决方案,文章内容完全一样,基本都是我转你,你转他。。。
-
原因1:报错的图片文件不是PNG文件
-
比如原本是一个jpg格式的图片,强行修改扩展名,改成PNG格式了
-
解决方案:
- 在build.gradle文件中的android标签增加如下内容:
aaptOptions { cruncherEnabled = false useNewCruncher = false }
-
-
原因2:.9的图片没有设置边距
- 解决方案:
- 通过AS自带的工具设置1px的边距即可
- 解决方案:
找到这两个方案,仔细检查我的项目,发现提示“ERROR: Unable to open PNG file”的文件有上百个,肯定不是因为手动修改了图片扩展名导致的,况且即便手动修改了jpg为png,也基本不会出错,只是没有了透明效果而已,所以首先排除了原因1,但是死马当作活马医,索性试一下,果然没有效果;再看原因2,报错的提示信息跟我的都不一样,可能也不是这个原因导致的,因为报错信息里边没有特定的指出是哪个.9的文件,我也保证,近期没有新增或修改.9的图片到项目中,所以原因2也排除。
就在将近崩溃之际,又再一次看了下build信息,看到了这个,整齐的中文字体
突然回忆起来,之前在使用AndroidStudio build其他项目的时候,发现如果productFlavors中含有中文的话,gradle build时,控制台会显示乱码,就单独花了一段时间解决乱码这个问题,记得修改过jvm启动参数,加了下面这句话,
-Dfile.encoding=UTF-8
会不会是中文编码导致的问题呢?
再试一下,Help→Edit Custom VM Options选项,打开jvm配置文件,把这句代码注释掉,再run一次。
结果是让人兴奋的!build成功了,但是又乱码了~
显然,修改乱码的方案是有问题的,
但也请大家注意,productFlavors中的名字,也千万不要使用中文。
虽然乱码,但是让我解决了一个阻断性问题,乱码的问题后续再解决吧。