试图为 android 构建版本。我在 vscode 终端中运行了 keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -aliaskey
但我收到了这个错误
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
我运行 flutter doctor -v 并让这个
Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
使用路径并用 keytool 替换 java(如文档中所示),但仍然出现错误。我该怎么办
最佳答案
创建 keystore
如果您有现有的 keystore ,请跳到下一步。如果没有,请通过在命令行中运行以下命令来创建一个:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:将此文件保密;不要将其 checkin 公共(public)源代码管理。
注意:keytool 可能不在您的路径中。它是作为 Android Studio 的一部分安装的 Java JDK 的一部分。对于具体路径,运行 flutter doctor -v 并查看“Java binary at:”之后打印的路径,然后使用该完全限定路径将 java 替换为 keytool。
从应用程序引用 keystore
创建一个名为 appdir/android/key.properties 的文件,其中包含对您的 keystore 的引用:
storePassword=password from previous step
keyPassword=password from previous step
keyAlias=key
storeFile=location of the key store file, e.g. /Users/user name/key.jks
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
检查本教程的描述:https://www.youtube.com/watch?v=nGvPNG-f1-o
或使用工具生成 key
从 https://shatter-box.com/knowledgebase/android-apk-signing-tool-apk-signer/ 下载应用程序签名工具
转到目录 Java 二进制文件:C:\Program Files\Android\Android Studio\jre\bin\java
然后输入cmd并回车
enter image description here
按照视频教程生成 key ,将 key 放置在您想要的任何位置,然后按照下一个教程使用第 1 个教程的应用程序包装 key 。
关于dart - keytool : The term 'keytool' is not recognized as the name of a cmdlet, 函数、脚本文件或可运行的程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51521738/