发现错误

今天早上看到Android Studio 2.0正式发布了,迫不及待升级了。
然而并不能愉快的玩耍,build之后发现了错误 aapt: libpng error: not a png file

定位错误

原来是我的资源文件中的文件格式出了问题,
有个其实是别的类型的图片资源(比如jpg),而不是png格式在我的资源文件中。

解决问题

首先我目测了一遍所有文件的大小,按格式排列了下,搞定了几个很明显不是png的图片,然而错误依旧,说明有其他格式的文件后缀名是png了,所以还是写个python脚本来查找吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import imghdr
import os

for filename in os.listdir(r'./drawable'):
imgType = imghdr.what('./drawable/'+filename)
if imgType != 'png':
print filename

for filename in os.listdir(r'./mipmap-hdpi'):
imgType = imghdr.what('./mipmap-hdpi/'+filename)
if imgType != 'png':
print filename

for filename in os.listdir(r'./mipmap-mdpi'):
imgType = imghdr.what('./mipmap-mdpi/'+filename)
if imgType != 'png':
print filename

for filename in os.listdir(r'./mipmap-xhdpi'):
imgType = imghdr.what('./mipmap-xhdpi/'+filename)
if imgType != 'png':
print filename

for filename in os.listdir(r'./mipmap-xxhdpi'):
imgType = imghdr.what('./mipmap-xxhdpi/'+filename)
if imgType != 'png':
print filename

PS.

找出之后目标图片后,可以用Sketch、Photoshop工具转换下,然后再放回去,就可以愉快的玩耍了。