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

从Flutter APK提取SHA密钥时出现错误求助

获取Firebase SHA密钥时遇到HmacPBESHA256算法不可用错误

问题详情

为上传至Firebase获取SHA密钥,执行命令:

keytool -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore

出现以下异常:

keytool error: java.io.IOException: Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
java.io.IOException: Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
        at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2167)
        at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222)
        at java.base/java.security.KeyStore.load(KeyStore.java:1479)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1058)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:405)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:398)
Caused by: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
        at java.base/javax.crypto.Mac.getInstance(Mac.java:191)
        at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2145)
        ... 5 more

Flutter环境检测无异常:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.12, on Deepin 20.9 5.15.77-amd64-desktop, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2022.2)
[✓] IntelliJ IDEA Community Edition (version 2023.1)
[✓] VS Code (version 1.78.2)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!

操作系统:Linux Deepin 20

解决方法

  • 使用Android SDK自带的JDK执行命令:
    直接调用Android SDK目录下的keytool(路径通常为~/Android/Sdk/jre/bin/keytool),规避系统默认JDK的兼容性问题:
    ~/Android/Sdk/jre/bin/keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
    
  • 切换到OpenJDK 8版本:
    若系统默认是高版本OpenJDK,安装并切换到OpenJDK 8:
    sudo apt-get install openjdk-8-jdk
    sudo update-alternatives --config java
    sudo update-alternatives --config keytool
    
    在弹出的选项中选择OpenJDK 8对应的条目,之后重新执行原始keytool命令。
  • 重新生成debug keystore:
    若旧keystore存在兼容性问题,重新生成一个:
    keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
    
    生成完成后再次执行获取SHA密钥的命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:30:32