在为Android应用创建密钥库时拒绝访问

JoJ*_*oJo 20 android keytool private-key

我正在尝试签署我的Android应用,以便我可以在Market中发布它.当我生成密钥库时,我收到拒绝访问错误.我该如何解决?

android密钥库选择

这就是我一直在努力做的事情:

  1. 右键单击Eclipse Helios中的项目.
  2. Android工具>导出签名的应用程序包.
  3. 点击下一步.
  4. 我检查"创建新的密钥库"并意识到它没有帮助我.它仍然要求密钥库的位置.所以我决定以艰难的方式去做.
  5. 关闭只读访问权限C:\Program Files\Java\jdk1.6.0_25\bin并授予该CREATOR OWNER组对该文件夹的完全控制权.
  6. 在Windows 7 64位上打开命令行.
  7. 遍历到C:\Program Files\Java\jdk1.6.0_25\bin.
  8. 运行keytool.
  9. 有访问被拒绝错误.

.

C:\Program Files\Java\jdk1.6.0_25\bin>keytool -genkey -v -alias company -keyalg R
SA -keysize 2048 -validity 10000 -keystore company.keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  John Smith
What is the name of your organizational unit?
  [Unknown]:  Android
What is the name of your organization?
  [Unknown]:  Company
What is the name of your City or Locality?
  [Unknown]:  Albany
What is the name of your State or Province?
  [Unknown]:  NY
What is the two-letter country code for this unit?
  [Unknown]:  US
Is CN=John Smith, OU=Android, O=Company, L=Albany, ST=NY, C=US correct?
  [no]:  yes

Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) with
 a validity of 10,000 days
        for: CN=John Smith, OU=Android, O=Company, L=Albany, ST=NY, C=US
Enter key password for <veetle>
        (RETURN if same as keystore password):
Re-enter new password:
[Storing company.keystore]
keytool error: java.io.FileNotFoundException: veetle.keystore (Access is denied)

java.io.FileNotFoundException: veetle.keystore (Access is denied)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:84)
        at sun.security.tools.KeyTool.doCommands(KeyTool.java:902)
        at sun.security.tools.KeyTool.run(KeyTool.java:172)
        at sun.security.tools.KeyTool.main(KeyTool.java:166)
Run Code Online (Sandbox Code Playgroud)

编辑:

每次我检查文件夹权限时,我都会看到它已恢复为只读.每当我关闭只读时都没有错误.

小智 51

以下步骤对我有用:

  1. 以管理员身份运行命令提示

  2. 取消选中此项中的只读选项C:\Program Files\Java\jdk1.6.0_25\bin 可能不需要

  3. keytool -genkey -v -keystore d:\my_private_key.keystore -alias my_key_alias -keyalg RSA -keysize 2048 -validity 10000

告诉它在驱动器中创建它D:.

  • 对我来说最重要的是以管理员身份运行,这对我来说不是默认的.cmd.exe位于C:\ Windows\System32中 (2认同)

Ulr*_*gel 36

它确实对你有帮助.您必须指定生成的文件的位置.例如,指定C:\ Documents and Settings\loginname\market.keystore

  • 以及如何通过cmd指定此路径? (5认同)
  • 对于cmd用户,只需以管理员身份打开cmd,请转到Java路径并照常执行命令 (4认同)

Giu*_*one 8

Android SDK需要访问的密钥库与JDK不同.您只需使用Android向导的"创建新密钥库"选项,并选择您具有写入权限的任何文件夹:向导将在那里创建一个新的密钥库.您不需要使用keytool形式的JDK.


小智 5

以管理员身份打开命令提示符对我有帮助。(适用于 Windows 8.1)


viv*_*vek 5

由于您不是管理员,所以访问被拒绝。

只需以管理员身份打开cmd提示符-对我有用。