编译错误:pngcrush caught libpng error

笔者今天在Xcode编译时,无论模拟器还是真机编译,出现如下提示错误:

pngcrush caught libpng error.png

在网上查找问题原因,大部分答案如下所示:

原因:该文件不是真正的png文件,可能是个jpg文件,实际的文件头信息是不一样的,造成不能识别。
解决方法有两种:
1、重新把图片文件处理成png文件
2、修改文件名后缀,比如改成.jpg

但是笔者去查看了多个报错图片的文件信息:

图片信息.png

可以看到:这些图片就是PNG格式的,问题不是出在图片身上!
由于导入的图片资源库是 UI设计师提供的 JSON动画,各个子文件夹下的图片名称大量重名,笔者怀疑这和图片重名有关(即使相同命名的图片不在同一个文件夹下):

文件目录.png

为了验证pngcrush caught libpng error错误是由“不同文件夹下图片名称一样”引起的,笔者新建一个 Demo,来验证这个猜想:

demo文件目录.png

上图是图片资源的文件夹,可以看到4个文件夹下的图片名称完全一样,笔者运行Xcode,编译程序;发现编译成功,没有报错!这难道说明pngcrush caught libpng error错误不是由“不同文件夹下图片名称一样”引起的?笔者感觉这个没有说服力,于是导入大量重名图片,如下文件夹所示:

demo文件目录1.png

此时再编译程序,编译失败,错误原因与“pngcrush caught libpng error.png”图所示一样。这足以验证笔者的猜想:pngcrush caught libpng error错误是由“不同文件夹下图片名称一样”引起的!

你可能感兴趣的:(编译错误:pngcrush caught libpng error)