创buildAndroid应用程序的密钥库时访问被拒绝

我试图签署我的Android应用程序,所以我可以在市场上发布它。 当我生成密钥库时,我得到一个访问被拒绝的错误。 我该如何解决?

android密钥库选择

这是我一直在试图做的事情:

  1. 在Eclipse Helios中右键单击项目。
  2. Android工具>导出签名的应用程序包。
  3. 点击下一步。
  4. 我检查“创build新的密钥库”,并意识到它没有任何帮助我。 它仍然要求密钥库的位置。 所以我决定这么做。
  5. closuresC:\Program Files\Java\jdk1.6.0_25\bin只读访问权限,并授予CREATOR OWNER组完全控制该文件夹的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) 

编辑:

每次我检查文件夹的权限,我发现它已经恢复到只读状态。 没有错误,只要我closures只读。

Solutions Collecting From Web of "创buildAndroid应用程序的密钥库时访问被拒绝"

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

下面的步骤为我工作:

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

  2. C:\Program Files\Java\jdk1.6.0_25\bin选中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:创build它。

Android SDK需要访问的密钥库与JDK不一样。 您可以简单地使用Android向导的“创build新密钥库”选项,并select您有权写入的任何文件夹:向导将在那里创build一个新的密钥库。 您不需要使用keytoolforms的JDK。

我有同样的问题。 你需要定义你的JAVA_HOME环境variables。

阅读此链接的“基本设置签名”段落: http : //developer.android.com/guide/publishing/app-signing.html#setup

它说:

在开始之前,请确保Keytool实用程序和Jarsigner实用程序可用于SDK构build工具。 这两个工具都可以在JDK中find。 在大多数情况下,您可以通过设置JAVA_HOME环境variables来告诉SDK构build工具如何find这些实用程序,以便它引用合适的JDK。 或者,您可以将JDK版本的Keytool和Jarsigner添加到PATHvariables中。

如果您正在开发GNU Compiler for Java最初版本的Linux,请确保系统使用的是Keytool的JDK版本,而不是gcj版本。 如果Keytool已经在你的PATH中,它可能指向/ usr / bin / keytool的符号链接。 在这种情况下,请检查符号链接目标以确保它指向JDK中的Keytool。

在没有Eclipse的情况下解决win7(yuk)上的问题:我将环境variablesJAVA_HOME设置为…. / JDK1.7.0_03(由GLbasic编程的Android),我只做了两件事来解决这个问题:1)文件夹…. / Java / JDK1.7.0_03我删除了包含keytool.exe的/ bin子文件夹的“只读”权限。 2)我打开控制台“作为pipe理员”(虽然它是唯一的帐户在我的win7)。 然后您执行cd … JDK / bin,再次运行keytool.exe,然后获取在JDK / bin中自动生成的文件nickname.keystore。 一旦完成,您可以重新分配“只读”权限。 祝你好运!

chagning阅读只在Windows 7帮助我。 不要忘记默认密码“changeit”

如果您使用Windows 7 ,请确保您以pipe理员身份运行eclipse。

确保在此位置没有其他密钥库文件C:\ Program Files \ Java \ jdk1.6.0_25 \ bin。 如果有,请将它保存在别的地方,然后再次尝试命令:

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

似乎通过keytool和最新的genkeypair方法在命令行中完成它更容易。 我完成了以下内容:

 keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA 

然后,我得到了一系列有关我的别名的名称,组织,位置和密码的问题,就是这样!

作为pipe理员打开命令提示符帮助了我(对于Windows 8.1)

以pipe理员身份运行eclipse解决问题,然后键入以下内容:

 keytool -genkey -v -keystore NAME-mobileapps.keystore -alias NAMEmobileapps -keyalg RSA -keysize 2048 -validity 10000 

希望它有帮助?