Cordova安卓Release构建报错PNG签名损坏,无法生成APK求助
根因说明
报错的核心原因是你在config.xml中配置的安卓图标源为ICO格式的favicon.ico,Cordova构建安卓应用时仅会将指定源文件直接复制重命名为要求的PNG格式,不会自动完成格式转换,最终生成的ic_launcher.png实际是ICO文件,导致AAPT2编译时无法识别PNG签名触发报错。
你移除图标配置后仍报错是因为未清理旧构建缓存,platforms目录下残留的旧配置仍在清单文件中引用了自定义图标资源,没有生成对应文件导致资源缺失。
标准解决方案(保留自定义图标)
- 准备符合要求的图标文件
- 生成不同密度的PNG格式安卓应用图标,对应尺寸为:mdpi 4848px、hdpi 7272px、xhdpi 9696px、xxhdpi 144144px、xxxhdpi 192*192px,将文件存放到项目
www/assets/android-icons/目录下
- 更新config.xml配置
- 移除原有的单条
配置,将图标配置放到安卓平台标签内部,示例配置如下:
<platform name="android"> <allow-intent href="market:*" /> <icon src="www/assets/android-icons/icon-mdpi.png" density="mdpi" /> <icon src="www/assets/android-icons/icon-hdpi.png" density="hdpi" /> <icon src="www/assets/android-icons/icon-xhdpi.png" density="xhdpi" /> <icon src="www/assets/android-icons/icon-xxhdpi.png" density="xxhdpi" /> <icon src="www/assets/android-icons/icon-xxxhdpi.png" density="xxxhdpi" /> </platform>
- 清理旧缓存重新构建
- 执行以下命令清理旧构建产物:
cordova platform remove android cordova clean
- 重新添加安卓平台(若官方源拉不到9.1.0版本,可临时切换到国内npm源后执行安装):
cordova platform add android@9.1.0
- 执行正式包构建:
cordova build android --release
临时绕过方案(使用默认图标)
如果不需要自定义图标,可直接按以下步骤操作:
- 完全删除config.xml中所有自定义
标签 - 执行以下命令清理并重新添加平台:
cordova platform remove android cordova platform add android
- 直接执行构建命令即可,Cordova会自动生成有效PNG格式的默认图标,不会触发资源错误
内容的提问来源于stack exchange,提问作者Envinyatar
相关产品推荐
相关产品推荐

