You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

签名后APK无法安装:解析包失败问题求助

问题重现

执行Flutter构建命令生成ABI拆分的混淆APK:

flutter build apk --split-per-abi --obfuscate --split-debug-info=<directory>

替换<directory>为存储路径后得到3个APK文件。

通过以下命令生成自签名密钥库:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

替换alias_name为自定义别名,完成创建后将app-armeabi-v7a-release.apk与密钥库放在同一目录,执行签名命令:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app-armeabi-v7a-release.apk alias_name

签名完成后收到以下输出:

jar signed.
Warning: The signer's certificate is self-signed. The SHA1 algorithm
specified for the -digestalg option is considered a security risk and
is disabled. The SHA1withRSA algorithm specified for the -sigalg
option is considered a security risk and is disabled. POSIX file
permission and/or symlink attributes detected. These attributes are
ignored when signing and are not protected by the signature.

尝试安装APK时所有设备均提示解析包时出现问题。

解决方案
  • 更换安全的签名算法
    弃用已被标记为不安全的SHA1算法,改用SHA-256相关算法重新签名:

    jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.keystore app-armeabi-v7a-release.apk alias_name
    
  • 执行APK对齐操作
    APK签名后必须使用zipalign进行对齐,否则会导致包解析失败。命令如下:

    zipalign -v 4 app-armeabi-v7a-release.apk app-armeabi-v7a-release-aligned.apk
    

    提示:zipalign工具位于Android SDK的build-tools/<对应版本号>目录下,可直接添加该路径到系统环境变量,或使用完整路径执行命令。

  • 验证处理后的APK
    使用Android官方的apksigner工具验证APK的有效性:

    apksigner verify app-armeabi-v7a-release-aligned.apk
    

    若命令无错误输出,说明APK已符合安装要求。

  • 重新构建确保APK完整性
    若上述步骤仍无效,重新执行Flutter构建命令,确保构建过程未中断,生成的原始APK文件未损坏。

内容的提问来源于stack exchange,提问作者Reza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:25:25