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

Flutter生成SHA-1证书指纹时执行Keytool命令返回Illegal Option错误

Flutter开发中Keytool执行报Illegal Options错误的解决方案

报错核心诱因

  • 官方文档提供的命令中,末尾的\是Unix/Linux/macOS系统下的命令换行续行标记,Windows CMD、PowerShell环境下直接复制带这个反斜杠的命令,会将其识别为非法选项,直接触发Illegal Options报错
  • 不同终端的环境变量语法不兼容,命令路径没有适配当前终端的解析规则
  • keytool可执行文件未正确配置到系统Path环境变量,调用时出现参数识别异常

分终端可直接执行的修正命令

  • Windows CMD 环境
    删除命令中用于换行的反斜杠,使用CMD原生的环境变量语法,执行:
    keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
    若提示找不到keystore文件,将路径替换为本地debug.keystore的绝对路径,例如C:\Users\你的系统用户名\.android\debug.keystore
  • Windows PowerShell 环境
    替换PowerShell不识别的CMD环境变量语法,执行:
    keytool -list -v -alias androiddebugkey -keystore $env:USERPROFILE\.android\debug.keystore
  • macOS / Linux 环境
    若直接运行带反斜杠的换行命令报错,删除续行符写成单行,使用Unix路径规则执行:
    keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

配套排查注意事项

  • 执行命令时若弹出输入密钥库密码的提示,Flutter默认debug签名的密钥库密码为android,输入时终端不会显示输入字符,输完直接按回车即可
  • 若提示“keytool不是内部或外部命令”,将Android Studio内置JBR的bin目录(常见路径为Android Studio安装目录\jbr\bin)添加到系统Path环境变量,重启终端后重新执行命令
  • 跨系统复制命令时,若原命令的反斜杠后残留空格,在Unix环境下运行也会触发参数错误,需要删掉反斜杠和后续空格,写成单行命令执行
  • 不要在命令行中手动给keystore路径加多余的引号,部分终端版本会将引号识别为参数的一部分,触发选项解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 16:06:07