试图为 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/

10-11 21:45