keytool :术语“keytool”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称

Nor*_*ert 5 dart flutter

试图为 android 构建版本。我keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key在 vscode 终端中运行,但出现此错误

keytool : The term 'keytool' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -val ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (keytool:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)

我运行 flutter doctor -v 并Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java使用路径并使用 keytool 替换 java(如文档中所示),但仍然出现错误。我该怎么办

Ric*_*eap 8

尝试从普通的 Windows 命令提示符运行它

D:\temp>"c:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -help
Key and Certificate Management Tool

Commands:

 -certreq            Generates a certificate request
 -changealias        Changes an entry's alias
 -delete             Deletes an entry
 -exportcert         Exports certificate
...
Run Code Online (Sandbox Code Playgroud)

另外,在 Windows 上,您不能使用~/. 将其更改为 Windows 样式路径,例如C:\Users\Norbert\keys,或任何您想要保留密钥库的位置。


Yas*_*ngh 5

创建密钥存储\n如果您有现有密钥存储,请跳到下一步。如果没有,请通过在命令行运行以下命令来创建一个:

\n\n

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

\n\n

注意:将此文件保密;不要将其签入公共源代码控制。

\n\n

注意:keytool 可能不在您的路径中。它是 Java JDK 的一部分,作为 Android Studio 的一部分安装。对于具体路径,运行 flutter doctor -v 并查看 \xe2\x80\x98Java 二进制文件后打印的路径:\xe2\x80\x99,然后使用该完全限定路径将 java 替换为 keytool。

\n\n

从应用引用密钥库\n创建一个名为 appdir/android/key.properties 的文件,其中包含对密钥库的引用:

\n\n
storePassword=password from previous step\nkeyPassword=password from previous step\nkeyAlias=key\nstoreFile=location of the key store file, e.g. /Users/user name/key.jks\n\ndef keystorePropertiesFile = rootProject.file("key.properties")\ndef keystoreProperties = new Properties()\nkeystoreProperties.load(new FileInputStream(keystorePropertiesFile))\n\nsigningConfigs {\n    release {\n        keyAlias keystoreProperties[\'keyAlias\']\n        keyPassword keystoreProperties[\'keyPassword\']\n        storeFile file(keystoreProperties[\'storeFile\'])\n        storePassword keystoreProperties[\'storePassword\']\n    }\n}\nbuildTypes {\n    release {\n        signingConfig signingConfigs.release\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

查看本教程的说明:https://www.youtube.com/watch?v=nGvPNG- f1-o

\n\n

或者使用工具生成密钥

\n\n

从以下位置下载应用程序签名工具:https://shatter-box.com/knowledgebase/android-apk-signing-tool-apk-signer/

\n\n

转到 Java 二进制文件目录:C:\\Program Files\\Android\\Android Studio\\jre\\bin\\java

\n\n

然后输入 cmd 并 Enter\n在此处输入图像描述

\n\n

按照视频教程生成密钥,将密钥放置在您想要的任何位置,然后按照下一个教程将密钥与第一个教程中的应用程序一起包装。

\n