对我的应用程序签名时无法创建密钥

时间:2019-06-21 08:13:05

标签: android flutter

我正在尝试创建我的应用程序的apk。我浏览了文档并找到了程序。我被首先指示转到我的项目文件夹并放入命令:

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

但是随后我得到一个错误消息,那就是keytool不是可识别的命令。我在网上查找并找到了我的java的安装目录,然后在存在keytool的文件夹中打开了cmd。

该命令已成功执行,我得到了所有程序,例如创建密钥库密码和其他个人详细信息。

最后,在我输入密钥密码后,我得到了一个错误:

keytool error: java.io.FileNotFoundException: ~\key.jks (The system cannot 
find the path specified)
java.io.FileNotFoundException: ~\key.jks (The system cannot find the path 
specified)
         at java.io.FileOutputStream.open0(Native Method)
         at java.io.FileOutputStream.open(FileOutputStream.java:270)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
         at sun.security.tools.keytool.Main.doCommands(Main.java:1144)
         at sun.security.tools.keytool.Main.run(Main.java:343)
         at sun.security.tools.keytool.Main.main(Main.java:336)

我应该得到一个名为key.jks的文件,但是失败了。

2 个答案:

答案 0 :(得分:1)

以下是示例:

keytool -genkey -v -keystore **Your PC path** /key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

像这样

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

我希望以上内容对您有用。

如果您要创建签名的APK,这是另一种解决方案

signingConfigs {
    release {
        storeFile file("release.keystore")
        storePassword "******"
        keyAlias "******"
        keyPassword "******"
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

您还可以使用android studio选项生成APK

  

https://developer.android.com/studio/publish/app-signing

答案 1 :(得分:0)

好吧,我发现真正的问题是什么。 我的Java安装在C驱动器中,我需要管理员权限才能在文件夹中进行更改。有时,即使您尝试以管理员身份运行,系统也可能不允许您进行存储。这就是为什么提示错误提示我的原因:

 keytool error: java.io.FileNotFoundException: ~\key.jks (The system cannot 
 find the path specified)

这表示该命令无法访问和编辑文件夹的内容。

然后我尝试将key.jks文件存储在我的项目文件夹中,但是随后提示我一个错误,提示它是非法选项。我同意我不应该深入目录。

最后,我尝试了一个简单的路径,这是我的D盘,命令看起来像:

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

这对我有用。希望我的回答有所帮助。