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?
C'est ce que j'ai essayé de faire:
C:\Program Files\Java\jdk1.6.0_25\bin
et accorder au groupe CREATOR OWNER
le contrôle total du dossier.C:\Program Files\Java\jdk1.6.0_25\bin
..
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)
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.
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
Les étapes ci-dessous ont fonctionné pour moi:
Exécuter l'invite de commande en tant qu'administrateur
Désactiver les options de lecture seule dans C:\Program Files\Java\jdk1.6.0_25\bin
Cela peut ne pas être requis
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:
.
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.
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.
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!
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.
l’ouverture de l’invite de commande en tant qu’administrateur m’a aidé (pour Windows 8.1).
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?
Si vous utilisez Windows 7 , assurez-vous d’exécuter Eclipse en tant qu’administrateur.
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!
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
changer en lecture seule sur Windows 7 m'a aidé. n'oubliez pas le mot de passe par défaut "changeit"