Android Studio中运行报错:libpng error: Not a PNG file的解决方法

本文介绍了一种常见的应用程序开发中的编译错误——图片格式不匹配问题,并提供了详细的排查和解决方案。强调了图片格式正确的重要性。

今天在真机运行调试的时候一直出现错误,而且是在XML等文件都没错的情况下。

这里插一句,图片和文件的名字不合法都可能会导致运行失败,在AS里不只是xml里面的语法错误,因为语法错误会有报错,而如果是名字的原因只能自己在运行失败后自己去debug找原因。

直接上运行结果截图


我们在报错的时候都可以点击红色框的选项来查找失败的原因和官方给出的修复建议。


这里的报错是没有PNG格式的图片。出现这个问题的原因是我自己在网上找了几张gif的图片,改了png格式后直接copy进去,但实际上这张图片并不是.png格式。。。敲打错误很简单却也很难发觉,原因就是在这张图片上,而要将图片真正转换成.png格式的才行。随便找个图片转换工具就可以解决。

注意:在存放图片时千万不要将格式为.jpg或者.gif的图片改成.png格式,千万不要偷懒,一定要将格式转换成PNG格式的图片,否则编译将不通过。切记!!!!


C:\Users\Administrator\Desktop\apktool>java -jar apktool_2.11.1.jar b ys_out --copy-original --use-aapt1 -o patched.apk I: Using Apktool 2.11.1 on patched.apk with 8 threads I: Checking whether sources have changed... I: Checking whether sources have changed... I: Smaling smali folder into classes.dex... I: Checking whether sources have changed... I: Checking whether resources have changed... I: Building resources with aapt... W: libpng error: Not a PNG file W: ERROR: Failure processing PNG image C:\Users\Administrator\Desktop\apktool\ys_out\res\mipmap-xxxhdpi\ic_launcher.png W: libpng error: Not a PNG file W: ERROR: Failure processing PNG image C:\Users\Administrator\Desktop\apktool\ys_out\res\mipmap-xxxhdpi\ic_launcher_foreground.png W: libpng error: Not a PNG file W: ERROR: Failure processing PNG image C:\Users\Administrator\Desktop\apktool\ys_out\res\mipmap-xxxhdpi\ic_launcher_round.png Exception in thread "main" brut.androlib.exceptions.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\Administrator\AppData\Local\Temp\brut_util_Jar_89850116274816387662406604486080040240.tmp, p, --forced-package-id, 127, --min-sdk-version, 21, --target-sdk-version, 31, --version-code, 637, --version-name, 4.0.0_16983586_17100363, --no-version-vectors, -F, C:\Users\Administrator\AppData\Local\Temp\APKTOOL684410994307341459.tmp, -I, C:\Users\Administrator\AppData\Local\apktool\framework\1.apk, -S, C:\Users\Administrator\Desktop\apktool\ys_out\res, -M, C:\Users\Administrator\Desktop\apktool\ys_out\AndroidManifest.xml] at brut.androlib.AaptInvoker.invoke(SourceFile:309) at brut.androlib.ApkBuilder.buildResources(SourceFile:352) at brut.androlib.ApkBuilder.build(SourceFile:93) at brut.apktool.Main.main(SourceFile:322) Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\Administrator\AppData\Local\Temp\brut_util_Jar_89850116274816387662406604486080040240.tmp, p, --forced-package-id, 127, --min-sdk-version, 21, --target-sdk-version, 31, --version-code, 637, --version-name, 4.0.0_16983586_17100363, --no-version-vectors, -F, C:\Users\Administrator\AppData\Local\Temp\APKTOOL684410994307341459.tmp, -I, C:\Users\Administrator\AppData\Local\apktool\framework\1.apk, -S, C:\Users\Administrator\Desktop\apktool\ys_out\res, -M, C:\Users\Administrator\Desktop\apktool\ys_out\AndroidManifest.xml] at brut.util.OS.exec(SourceFile:143) at brut.androlib.AaptInvoker.invoke(SourceFile:305) ... 3 more ys_out\smali\com\example\floatingball\FloatingBallService$TouchListener.smali[108,0] Error for input '.end class': Invalid directive
最新发布
10-13
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值