29

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

アンドロイドキーストアの選択

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

  1. EclipseHeliosでプロジェクトを右クリックします。
  2. Androidツール>署名済みアプリケーションパッケージのエクスポート。
  3. [次へ]をクリックします。
  4. 「新しいキーストアを作成する」をチェックしましたが、何の役にも立ちません。それでもキーストアの場所を尋ねます。だから私はそれを難し​​い方法でやることにしました。
  5. 読み取り専用アクセスをオフにして、グループにフォルダのフルコントロールをC:\Program Files\Java\jdk1.6.0_25\bin許可しました。CREATOR OWNER
  6. Windows764ビットでコマンドラインを開きます。
  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)

編集:

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

4

13 に答える 13

72

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

  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:

于 2013-05-05T15:45:39.660 に答える
54

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

于 2011-07-06T20:23:51.390 に答える
13

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

管理者としてcmdプロンプトを開くだけです-それは私のために働きました。

于 2018-01-06T06:33:36.740 に答える
8

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

于 2011-07-06T20:29:15.167 に答える
3

管理者としてコマンドプロンプトを開くと役に立ちました(Windows 8.1の場合)

于 2016-06-02T07:47:55.600 に答える
1

私も同じ問題を抱えていました。JAVA_HOME環境変数を定義する必要があります。

このリンクの「署名の基本設定」の段落をお読みください:http://developer.android.com/guide/publishing/app-signing.html#setup

それは言う:

始める前に、KeytoolユーティリティとJarsignerユーティリティがSDKビルドツールで使用できることを確認してください。これらのツールは両方ともJDKで使用できます。ほとんどの場合、適切なJDKを参照するようにJAVA_HOME環境変数を設定することで、これらのユーティリティを見つける方法をSDKビルドツールに指示できます。または、JDKバージョンのKeytoolとJarsignerをPATH変数に追加することもできます。

元々GNUCompilerfor Javaに付属していたバージョンのLinuxで開発している場合は、システムがgcjバージョンではなくJDKバージョンのKeytoolを使用していることを確認してください。KeytoolがすでにPATHにある場合は、/ usr / bin/keytoolにあるシンボリックリンクを指している可能性があります。この場合、シンボリックリンクターゲットをチェックして、JDKのKeytoolを指していることを確認します。

于 2012-02-16T16:13:32.450 に答える
1

Eclipseなしのwin7(yuk)での問題の修正:環境変数JAVA_HOMEを..../ JDK1.7.0_03(GLbasicからプログラムされたandroid)に設定し、問題を修正するために2つのことだけを行いました:1) folder ..../ Java /JDK1.7.0_03keytool.exeを含む/binサブフォルダーの「読み取り専用」権限を削除しました。2)「管理者として」コンソールを開きました(ただし、これは私のwin7の唯一のアカウントです)。次に、cd ... JDK / binを実行し、keytool.exeを再度実行すると、JDK/binで自動生成されたファイルnickname.keystoreが取得されます。すべてが完了したら、「読み取り専用」権限を再割り当てできます。幸運を!

于 2012-06-28T10:18:59.743 に答える
1

管理者としてeclipseを実行すると問題が解決し、次のように入力します。

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

お役に立てば幸いですか?

于 2016-09-20T09:28:44.050 に答える
0

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

于 2012-05-15T13:47:06.713 に答える
0

Windows7での読み取り専用の変更は私を助けました。デフォルトのパスワード「changeit」を忘れないでください

于 2012-07-09T16:55:40.833 に答える
0

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

于 2015-02-18T16:33:57.453 に答える
0

keytoolと最新のgenkeypairアプローチを使用して、コマンドラインでそれを実行する方が簡単なようです。私は次のように仕上げました:

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

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

于 2015-09-24T00:58:33.083 に答える
0

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

于 2019-06-02T19:48:28.367 に答える