Androidアプリに署名しようとしています。Marketでリリースできます。キーストアを生成すると、アクセス拒否エラーが表示されます。これを修正するにはどうすればよいですか?
これは私がやろうとしてきたことです:
C:\Program Files\Java\jdk1.6.0_25\bin
の読み取り専用アクセスをオフにし、CREATOR OWNER
グループにフォルダーのフルコントロールを付与しました。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)
フォルダーのアクセス許可を確認するたびに、読み取り専用に戻っていることがわかります。読み取り専用をオフにしてもエラーはありませんでした。
それはあなたを助けます。 willが生成されるファイルの場所を指定する必要があります。たとえば、C:\ Documents and Settings\loginname\market.keystoreを指定します
以下の手順は私のために働いた:
管理者としてコマンドプロンプトを実行する
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
ドライブD:
に作成するように伝えます。
Android SDKがアクセスする必要があるキーストアは、JDKと同じではありません。ウィザードのAndroidウィザードの新しいキーストアの作成]オプションを使用するだけです書き込みアクセス権のあるフォルダを選択します:ウィザードはそこに新しいキーストアを作成します。JDKからkeytoolを使用する必要はありません。
あなたは管理者ではないため、アクセスが拒否されました。
管理者としてcmdプロンプトを開くだけ-私にとってはうまくいきました。
Eclipseを使用しないwin7(yuk)の問題の修正:環境変数Java_HOMEを..../JDK1.7.0_03(AndroidはGLbasicからプログラム)に設定しました。 folder ..../Java/JDK1.7.0_03 keytool.exeを含む/ binサブフォルダーの「読み取り専用」権限を削除しました。 2)「管理者として」コンソールを開きました(win7の唯一のアカウントですが)。 cd ... JDK/binを実行し、keytool.exeを再度実行すると、JDK/binで自動生成されたファイルnickname.keystoreが取得されます。すべてが完了したら、「読み取り専用」権限を再割り当てできます。幸運を!
管理者としてコマンドプロンプトを開くと助けられました(Windows 8.1の場合)
同じ問題がありました。 Java_HOME環境変数を定義する必要があります。
このリンクの「署名の基本設定」段落をお読みください: http://developer.Android.com/guide/publishing/app-signing.html#setup
それは言います:
開始する前に、SDKビルドツールでKeytoolユーティリティとJarsignerユーティリティが使用可能であることを確認してください。これらのツールは両方ともJDKで利用できます。ほとんどの場合、適切なJDKを参照するようにJava_HOME環境変数を設定することにより、SDKビルドツールにこれらのユーティリティの検索方法を指示できます。または、JDKバージョンのKeytoolとJarsignerをPATH変数に追加できます。
元々GNU Compiler for Javaに付属していたLinuxのバージョンで開発している場合、システムがgcjバージョンではなくJDKバージョンのKeytoolを使用していることを確認してください。 PATHで、/ usr/bin/keytoolのシンボリックリンクを指している可能性がありますこの場合、symlinkターゲットを確認して、JDKのKeytoolを指していることを確認します。
Eclipseを管理者として実行して問題を解決し、次を入力します。
keytool -genkey -v -keystore NAME-mobileapps.keystore -alias NAMEmobileapps -keyalg RSA -keysize 2048 -validity 10000
それが役立つことを願っていますか?
Windows 7を使用している場合は、管理者としてEclipseを実行していることを確認してください。
Macを使用している場合は、コマンドの先頭に"Sudo"を追加します"keytool -genkey -v -keystore my-release-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
その後、エイリアスの名前、組織、場所、パスワードに関する一連の質問がありました。
この場所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
windows 7で読み取り専用を変更すると助かりました。デフォルトのパスワード「changeit」を忘れないでください