Android应用构建报重复资源错误,PNG与WebP共存时该保留哪种格式?
Android应用构建报重复资源错误,PNG与WebP共存时该保留哪种格式?
哈哈,这种因为资源生成工具用多了搞出重复资源的坑我也踩过!看到你报的Error: Duplicate resources,完全就是同一个mipmap目录里同时存在同名的PNG和WebP文件闹的——Android构建系统会把同名的资源文件(不管格式)当成同一份资源来处理,自然就冲突报错了。
关于你问的能不能删PNG留WebP,答案是只要你的App最低兼容版本是Android 4.3(API 18)及以上,完全可以放心删掉PNG只保留WebP,原因有这几点:
- WebP是Google主推的高效图片格式,相同画质下体积比PNG小30%左右,能有效减小AAB/APK的体积,对用户下载和安装都更友好
- Android 4.3及以上的系统原生支持静态WebP图片,现在绝大多数App的最低兼容版本都已经升到API 18以上了,基本不用太担心兼容性问题
如果你的App还需要兼容Android 4.2及以下(API 17及更低),那得保留PNG文件,因为这些老系统不支持WebP,会导致图片加载失败。不过这种情况现在已经很少见了,你可以先去Module级的build.gradle文件里看看minSdkVersion的配置,确认下兼容范围。
给你个实操小步骤:
- 先批量检查所有mipmap/drawable目录,把和WebP同名的PNG文件全部删除
- 操作完后先执行
Build > Clean Project清理项目缓存,再重新构建AAB/APK,一般就能解决重复资源的问题了
以后用资源生成工具的时候,尽量统一输出WebP格式,就不会再出现这种手忙脚乱的情况啦~
内容来源于stack exchange
相关产品推荐
相关产品推荐

