Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Android应用程序创建密钥库时拒绝访问_Android_Keytool_Private Key - Fatal编程技术网

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

为Android应用程序创建密钥库时拒绝访问,android,keytool,private-key,Android,Keytool,Private Key,我正在尝试签署我的Android应用程序,以便在市场上发布它。当我生成密钥库时,我得到一个拒绝访问错误。我该如何解决这个问题 这就是我一直想做的: 右键单击Eclipse Helios中的项目 Android工具>导出已签名的应用程序包 单击下一步 我检查了“创建新密钥库”,发现它对我毫无帮助。它仍然会询问密钥库的位置。所以我决定用艰难的方式去做 关闭对C:\Program Files\Java\jdk1.6.0\u 25\bin的只读访问,并授予创建者所有者对文件夹的完全控制权 在64位Wi

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

这就是我一直想做的:

  • 右键单击Eclipse Helios中的项目
  • Android工具>导出已签名的应用程序包
  • 单击下一步
  • 我检查了“创建新密钥库”,发现它对我毫无帮助。它仍然会询问密钥库的位置。所以我决定用艰难的方式去做
  • 关闭对
    C:\Program Files\Java\jdk1.6.0\u 25\bin
    的只读访问,并授予
    创建者所有者对文件夹的完全控制权
  • 在64位Windows 7上打开命令行
  • 遍历到
    C:\ProgramFiles\Java\jdk1.6.0\u 25\bin
  • 运行keytool
  • 出现访问被拒绝的错误
  • C:\ProgramFiles\Java\jdk1.6.0\u 25\bin>keytool-genkey-v-alias company-keyalg R
    SA-密钥大小2048-有效期10000-密钥库公司.keystore
    输入密钥库密码:
    重新输入新密码:
    你的名字和姓氏是什么?
    [未知]:约翰·史密斯
    您的组织单位名称是什么?
    [未知]:安卓
    你的组织名称是什么?
    [未知]:公司
    你所在的城市或地区叫什么名字?
    [未知]:奥尔巴尼
    你所在的州或省叫什么名字?
    [未知]:纽约
    这个单位的两个字母的国家代码是什么?
    [未知]:美国
    CN=John Smith,OU=Android,O=Company,L=Albany,ST=NY,C=US对吗?
    [否]:是的
    使用生成2048位RSA密钥对和自签名证书(SHA1 WithRSA)
    有效期为10000天
    代表:CN=John Smith,OU=Android,O=Company,L=Albany,ST=NY,C=US
    输入的密钥密码
    (如果与密钥库密码相同,则返回):
    重新输入新密码:
    [存储公司密钥库]
    keytool错误:java.io.FileNotFoundException:veetle.keystore(访问被拒绝)
    java.io.FileNotFoundException:veetle.keystore(访问被拒绝)
    在java.io.FileOutputStream.open(本机方法)
    位于java.io.FileOutputStream。(FileOutputStream.java:194)
    位于java.io.FileOutputStream。(FileOutputStream.java:84)
    位于sun.security.tools.KeyTool.doCommands(KeyTool.java:902)
    运行(KeyTool.java:172)
    位于sun.security.tools.KeyTool.main(KeyTool.java:166)
    
    编辑:
    每次检查文件夹权限时,我都会看到它已恢复为只读。每当我关闭只读时都没有错误。

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

    Android SDK需要访问的密钥库与JDK不同。您只需使用Android向导的“创建新密钥库”选项,并选择您具有写入权限的任何文件夹:向导将在其中创建一个新密钥库。您不需要从JDK使用keytool。

    我也有同样的问题。您需要定义JAVA_HOME环境变量

    阅读此链接的“签名的基本设置”段落:

    它说:

    开始之前,请确保SDK构建工具可以使用Keytool实用程序和Jarsigner实用程序。这两种工具都可以在JDK中使用。在大多数情况下,您可以通过设置JAVA_HOME环境变量使其引用合适的JDK来告诉SDK构建工具如何找到这些实用程序。或者,您可以将JDK版本的Keytool和Jarsigner添加到PATH变量中

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


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

    修复不使用eclipse的win7(YK)上的问题: 我将环境变量JAVA_HOME设置为..../JDK1.7.0_03(android由GLbasic编程),我只做了两件事来解决这个问题: 1) 在..../Java/JDK1.7.0_03文件夹中,我删除了包含keytool.exe的/bin子文件夹的“只读”权限。 2) 我以管理员身份打开了控制台(尽管它是我win7上唯一的帐户)。 然后执行cd…JDK/bin,再次运行keytool.exe,并在JDK/bin中自动生成昵称.keystore文件。 完成所有操作后,您可以重新分配“只读”权限。
    祝你好运

    在Windows7上只阅读chagning对我有帮助。不要忘记默认密码“changeit”

    以下步骤对我很有用:

  • 以管理员身份运行命令提示符

  • 取消选中
    C:\Program Files\Java\jdk1.6.0\u 25\bin
    中的只读选项,这可能不是必需的

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


  • 告诉它在驱动器
    D:

    中创建它,确保此位置C:\Program Files\Java\jdk1.6.0\U 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
    
    keytool -genkey -v -keystore NAME-mobileapps.keystore -alias NAMEmobileapps -keyalg RSA -keysize 2048 -validity 10000
    
    keytool-genkeypair-keystore~/.android/release.keystore-alias-storepass-keyalg RSA
    

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

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

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