Flutter构建App Bundle失败:signReleaseBundle任务执行出错
Flutter构建AppBundle失败问题解决
问题说明
构建过程中有两个关键信息:
- 字体优化提示(非错误):
字体资源"MaterialIcons-Regular.otf"已被tree-shaken,大小从1645184字节缩减至4316字节(缩减99.7%),可通过添加--no-tree-shake-icons参数禁用tree-shaking。
这是Flutter默认的图标字体优化,自动剔除未使用的图标,不影响构建。若需保留全部Material图标,构建时执行:flutter build appbundle --no-tree-shake-icons
- 核心构建失败原因:
任务':app:signReleaseBundle'执行失败,执行com.android.build.gradle.internal.tasks.FinalizeBundleTask$BundleToolRunnable时出错,无法从密钥库"C:\Users\dell\StudioProjects\test1\android\app\upload-keystore.jks"读取upload密钥,提示密钥库已被篡改或密码不正确。
解决方案
针对签名失败问题,按以下步骤排查:
- 核对密钥信息:检查
android/key.properties中的storePassword、keyPassword、keyAlias是否与创建密钥库时的设置完全一致,注意大小写、特殊字符的准确性。 - 验证密钥库完整性:如果密钥库文件被修改或损坏,从备份恢复;若应用未发布,可重新生成密钥库(已发布应用禁止更换密钥库,会导致无法更新)。
- 确认密钥库路径:检查
key.properties里的storeFile路径是否正确,确保文件存在于指定位置,Windows路径需用\\或/分隔。 - 用keytool验证:执行命令测试密钥库有效性:
输入密码后若能正常显示密钥详情,说明密钥库和密码无问题;否则为密码错误或文件损坏。keytool -list -v -keystore C:\Users\dell\StudioProjects\test1\android\app\upload-keystore.jks
额外排查手段
若上述步骤未解决问题:
- 执行
flutter build appbundle --stacktrace获取详细堆栈信息 - 添加
--info或--debug参数查看更多日志,定位具体错误点 - 清理缓存后重试:
flutter clean,再重新执行构建命令
内容的提问来源于stack exchange,提问作者Louay ELAROUI
相关产品推荐
相关产品推荐

