web-dev-qa-db-ja.com

Android appのキーストアの作成時にアクセスが拒否されました

Androidアプリに署名しようとしています。Marketでリリースできます。キーストアを生成すると、アクセス拒否エラーが表示されます。これを修正するにはどうすればよいですか?

Android keystore selection

これは私がやろうとしてきたことです:

  1. Eclipse Heliosでプロジェクトを右クリックします。
  2. Androidツール>署名済みアプリケーションパッケージのエクスポート。
  3. 次へをクリックします。
  4. 「新しいキーストアを作成する」をチェックすると、それが役に立たないことがわかります。キーストアの場所を尋ねます。だから私は難しい方法でそれをすることにしました。
  5. C:\Program Files\Java\jdk1.6.0_25\binの読み取り専用アクセスをオフにし、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)

編集:

フォルダーのアクセス許可を確認するたびに、読み取り専用に戻っていることがわかります。読み取り専用をオフにしてもエラーはありませんでした。

20
JoJo

それはあなたを助けます。 willが生成されるファイルの場所を指定する必要があります。たとえば、C:\ Documents and Settings\loginname\market.keystoreを指定します

32
Ulrich Dangel

以下の手順は私のために働いた:

  1. 管理者としてコマンドプロンプトを実行する

  2. 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:に作成するように伝えます。

51
Sarker

Android SDKがアクセスする必要があるキーストアは、JDKと同じではありません。ウィザードのAndroidウィザードの新しいキーストアの作成]オプションを使用するだけです書き込みアクセス権のあるフォルダを選択します:ウィザードはそこに新しいキーストアを作成します。JDKからkeytoolを使用する必要はありません。

8

あなたは管理者ではないため、アクセスが拒否されました。

管理者としてcmdプロンプトを開くだけ-私にとってはうまくいきました。

5
vivek

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が取得されます。すべてが完了したら、「読み取り専用」権限を再割り当てできます。幸運を!

1
sf-in-sf

管理者としてコマンドプロンプトを開くと助けられました(Windows 8.1の場合)

1
pureevill

同じ問題がありました。 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を指していることを確認します。

1
arnaudweb

Eclipseを管理者として実行して問題を解決し、次を入力します。

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

それが役立つことを願っていますか?

0
Yusuf Adeyemo

Windows 7を使用している場合は、管理者としてEclipseを実行していることを確認してください。

0
Jimmy

Macを使用している場合は、コマンドの先頭に"Sudo"を追加します"keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias- keyalg RSA -keysize 2048 -validity 10000 "

0

コマンドラインでkeytoolおよび最新のgenkeypairアプローチを使用する方が簡単だと思われます。私は次のことを終えました:

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

その後、エイリアスの名前、組織、場所、パスワードに関する一連の質問がありました。

0
goRGon

この場所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

0
Vishwani

windows 7で読み取り専用を変更すると助かりました。デフォルトのパスワード「changeit」を忘れないでください

0
fredy