web-dev-qa-db-fra.com

Accès refusé lors de la création du magasin de clés pour l'application Android

J'essaie de signer mon application Android pour pouvoir la publier sur Market. Lorsque je génère le magasin de clés, j'obtiens une erreur d'accès refusé. Comment puis-je réparer ça?

Android keystore selection

C'est ce que j'ai essayé de faire:

  1. Faites un clic droit sur le projet dans Eclipse Helios.
  2. Outils Android> Exporter le package d'application signé.
  3. Cliquez sur Suivant.
  4. Je coche la case "Créer un nouveau magasin de clés" et réalise que cela ne m'aide pas. Il demande toujours l'emplacement du magasin de clés. Alors je décide de le faire à la dure.
  5. Désactiver l'accès en lecture seule sur C:\Program Files\Java\jdk1.6.0_25\bin et accorder au groupe CREATOR OWNER le contrôle total du dossier.
  6. Ouvrez la ligne de commande sur Windows 7 64 bits.
  7. Traverser à C:\Program Files\Java\jdk1.6.0_25\bin.
  8. Exécutez keytool.
  9. Vous avez une erreur d'accès refusé.

.

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)

Modifier:

Chaque fois que je vérifie les autorisations du dossier, je constate qu'il est revenu en lecture seule. Il n'y avait pas d'erreur chaque fois que je désactivais en lecture seule.

19
JoJo

Cela vous aide. Vous devez spécifier l'emplacement du fichier qui sera sera généré. Par exemple, indiquez C:\Documents and Settings\loginname\market.keystore

29
Ulrich Dangel

Les étapes ci-dessous ont fonctionné pour moi:

  1. Exécuter l'invite de commande en tant qu'administrateur

  2. Désactiver les options de lecture seule dans C:\Program Files\Java\jdk1.6.0_25\bin Cela peut ne pas être requis

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

Dites-lui de le créer dans le lecteur D:.

49
Sarker

Le fichier de clés auquel le SDK Android a besoin d'accéder n'est pas le même que celui du JDK. Vous pouvez simplement utiliser l'option "Créer un nouveau magasin de clés" de l'assistant Android et choisir n'importe quel dossier auquel vous avez accès en écriture: l'assistant créera un nouveau magasin de clés. Vous n'avez pas besoin d'utiliser le JDK de keytool.

8
Giuseppe Cardone

Accès refusé parce que vous n'êtes pas un administrateur. 

Ouvrez simplement l'invite cmd en tant qu'administrateur - cela a fonctionné pour moi.

4
vivek

Résolution du problème sur win7 (yuk) sans Eclipse: La variable d’environnement Java_HOME est définie sur ..../JDK1.7.0_03 (Android programmé à partir de GLbasic) et je n’ai effectué que 2 actions pour résoudre le problème: __. 1) dans le dossier ..../Java/JDK1.7.0_03, j'ai supprimé l'autorisation "lecture seule" du sous-dossier/bin, qui contient keytool.exe . 2) j'ai ouvert la console "en tant qu'administrateur" (bien que ce soit le seul compte sur mon win7) . alors vous cd ... JDK/bin, exécutez à nouveau keytool.exe, et vous obtenez le fichier nickname.keystore généré automatiquement dans JDK/bin . Une fois que tout est fait, vous pouvez réaffecter la permission "en lecture seule" . Bonne chance!

1
sf-in-sf

J'ai eu le même problème. Vous devez définir votre variable d’environnement Java_HOME.

Lisez le paragraphe "Configuration de base pour la signature" de ce lien: http://developer.Android.com/guide/publishing/app-signing.html#setup

Ça dit:

Avant de commencer, assurez-vous que les utilitaires Keytool et Jarsigner sont disponibles pour les outils de génération du SDK. Ces deux outils sont disponibles dans le JDK. Dans la plupart des cas, vous pouvez indiquer aux outils de génération de SDK comment trouver ces utilitaires en définissant votre variable d'environnement Java_HOME afin qu'elle fasse référence à un JDK approprié. Vous pouvez également ajouter la version JDK de Keytool et Jarsigner à votre variable PATH.

Si vous développez une version de Linux fournie avec le compilateur GNU pour Java, assurez-vous que le système utilise la version JDK de Keytool plutôt que la version gcj. Si Keytool est déjà dans votre PATH, il est peut-être pointé sur un lien symbolique situé dans/usr/bin/keytool. Dans ce cas, vérifiez la cible du lien symbolique pour vous assurer qu'elle pointe vers l'outil de clé dans le JDK.

1
arnaudweb

l’ouverture de l’invite de commande en tant qu’administrateur m’a aidé (pour Windows 8.1).

0
pureevill

Exécuter Eclipse en tant qu’administrateur résout le problème, puis tapez ce qui suit:

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

J'espère que ça aide?

0
Yusuf Adeyemo

Si vous utilisez Windows 7 , assurez-vous d’exécuter Eclipse en tant qu’administrateur.

0
Jimmy

Il semble plus facile de le faire en ligne de commande via keytool et la dernière approche genkeypair . J'ai fini avec ce qui suit:

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

Ensuite, j'ai reçu une série de questions concernant le nom, l'organisation, l'emplacement et le mot de passe de mon alias et c'était tout!

0
goRGon

Assurez-vous qu'aucun autre fichier de clés ne se trouve à cet emplacement, C:\Program Files\Java\jdk1.6.0_25\bin. Si c'est le cas, conservez-le ailleurs et relancez la commande:

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

0
Vishwani

changer en lecture seule sur Windows 7 m'a aidé. n'oubliez pas le mot de passe par défaut "changeit"

0
fredy