web-dev-qa-db-ja.com

デバッグモード用にAndroid StudioでSHA-1フィンガープリント証明書を取得する方法

私は Eclipse から Android Studio に自分自身を移しました。今私は私の地図アプリで作業しようとしています。だから私は私のSHA-1指紋証明書番号が必要です。

私がEclipseを使用していたとき、それは Windows - > Preferences - > Android - > Build の真下にありました。しかし、Android Studioでは、指紋を簡単に見つけることができるように、このようなオプションを見つけることができませんでした。私はWindowsを使っています。私はこの link からそれを読みました:

IDEからプロジェクトを実行またはデバッグすると、Android Studioは自動的にアプリケーションをデバッグモードで署名します。

だから私は this link から私のJava binパスを設定した後にコマンドラインでこれを実行しようとしました、そして残念ながら私の指紋を見つけることができませんでした。 それは違法なオプションであると言っています

keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android

それはEclipseで非常に簡単だったようにAndroid StudioからSHA-1フィンガープリントを見つける方法はありますか?私はAndroid Studioの初心者なので、見つけるための完全なプロセスは何ですか?

もう1つ追加したいのは、EclipseにSHA-1フィンガープリントを生成させ、以前はGoogle開発者コンソールで自分のアプリをそのフィンガープリントに登録させ、そのAPIキーを使ってEclipseでそのアプリに取り組んだことです。 Android Studioのこの私のプロジェクトでも同じAPIキーを使用できますか?

415
Setu Basak

これまでで最も簡単な方法:

最後のステップでAndroid Studio V 2.2用に追加されたアップデート

これを行うには2つの方法があります。

1.高速化

  1. Android Studioを開く
  2. プロジェクトを開く
  3. Gradleをクリックします(右側のパネルから、Gradle Bar)が見えます)
  4. 更新をクリックします(Gradle Barから更新をクリックすると、プロジェクトのList Gradleスクリプトが表示されます)。
  5. あなたのプロジェクトをクリックしてください(あなたのプロジェクト名フォームリスト(ルート))
  6. タスクをクリック
  7. Androidをクリック
  8. SigningReportをダブルクリックします(Run BarSHA1MD5が表示されます(時々Gradleコンソールに表示されます))。
  9. アプリケーションを実行またはデバッグするには、モジュール選択ドロップダウンからapp moduleを選択します。

下のスクリーンショットを確認してください。

enter image description here

2. Googleマップアクティビティの操作

  1. Android Studioを開く
  2. プロジェクトを開く
  3. ファイルメニューをクリック - >選択新規 - > Google - >を選択Google Maps Activity
  4. ダイアログが表示されます - > 完了をクリック
  5. Android Studioは自動的にXMLファイル名前付きgoogle_maps_api.xmlで生成します
  6. ここにdebug SHA1 keyがあります(XMLファイルの行番号10)。

下のスクリーンショットを確認してください

Enter image description here

Android Studio V 2.2アップデート

Executionに問題があります。

解決策:

  • ランバーからタスク実行/テキストモードの切り替えをクリックします

下のスクリーンショットを確認してください

enter image description here

完了

1086
Hiren Patel

私の問題は、私の Google Maps プロジェクトもEclipseからAndroid Studioに変更したのと同じです。私はこれに従うことによって私の問題を解決しました:

次のコマンドでJavaのbinディレクトリに移動します。

C:\Program Files\Java\jdk1.7.0_71\bin>

今すぐあなたのコマンドウィンドウ(CMD.EXE)に以下のコマンドを入力してください:

keytool -list -v -keystore c:\users\your_user_name\.Android\debug.keystore -alias androiddebugkey -storepass Android -keypass Android

例:

keytool -list -v -keystore c:\users\James\.Android\debug.keystore -alias androiddebugkey -storepass Android -keypass Android

ユーザー名がわからない場合は、cmdで記述することもできます。

keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android

そして、あなたはSHA1を手に入れるでしょう。

それから私は https://code.google.com/apis/console から新しいキーを作成しました。私のパッケージ名が変更されてから、このキーを自分のアプリケーションで使用したためです。それはうまくいきます。

jdkX.X.X_XX(私のフォルダ名はjdk1.7.0_71) _のBINフォルダにいることを確認してください。 Javaフォルダを開いてそれを見つけたら、フォルダ名がわかりますが、BINフォルダに入ってからこのコマンドを実行する必要があります。今日、私は上記の手順によってcmdコマンドウィンドウで私のSHA1値を得ました。

要約:

Enter image description here

286
Jamil

私はちょうどAndroid StudioでSHA-1を入手するケースを見つけました:

  1. あなたのパッケージをクリックして 新規 - > Google - > Google Maps Activity を選択してください。
  2. Android Studioはgoogle_maps_api.xmlにリダイレクトします

そして、あなたはあなたがgoogle_maps_keyを取得するために必要なすべてを見るでしょう。

Image

112

Macの場合、これは完璧に機能しました。

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
111
JoeNCA

Android用の SHA-1 キーを生成するための最善の解決策は、 Android Studio からです。

一番右側のGradleをクリックしてください。

更新アイコンをクリックすると、アプリの名前が表示されます。

タスク - > レポート - > 署名レポート をクリックします。

コンソールの下部にあるSHA-1キーを見つけます。

37
Ismaran Duwadi

[2017年更新]

ステップ1:Android Studioの右上にある[On Gradle]オプションをクリックします。

Android Studio Click On Gradle option

ステップ2:

- [更新]をクリックします(Gradleバーから[更新]をクリックすると、プロジェクトのGradleスクリプトの一覧が表示されます)。

- あなたのプロジェクトをクリックします(あなたのプロジェクト名フォームリスト(ルート))

- タスクをクリック

- Androidをクリック

- signingReportをダブルクリックします(Gradleコンソール/ Run BarにSHA1とMD5が表示されます)。

enter image description here

ステップ3:Android Studioの下部にあるGradleコンソールオプションをクリックしてSHA1キーを確認します。

enter image description here

ステップ4: これでSHAキーは手に入りましたが、プロジェクトを実行できません。そのため、設定をアプリモードに変更します。下の画像を見てください。

enter image description here

このような。

enter image description here

ステップ5:ハッピーコーディング!

35
Dinesh Sunny

私は@Hiren Patelの回答を使っていますが、Android studio 2.2で少し変更します

enter image description here

22
Arpit Patel

LinuxおよびMacの場合

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android 
18
Vicky

私は自分のMacから端末を使って次のコマンドを直接使った。私はSHA1 Fingerを手に入れました。これはコマンドです:

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
12
Hanuman

プロダクションキーストアのSHA1を取得する場合

  1. ビルド - >署名付きAPKの生成...

  2. パスワードでキーストアを作成し、手順に従ってください

  3. Mac /ライブラリ/ Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/binに移動し、cdコマンドの後にbinフォルダを端末にドラッグしてポイントし、keytoolツールを使用できるようにします。そのため、端末にcdと入力し(ここでbinをドラッグ)、Enterキーを押します。

  4. それをコピーして端末に貼り付けます。

    keytool -exportcert -alias Your_keystore_AliasName -keystore /Users/Home/Development/AndroidStudioProjects/YoutubeApp/app/YoutubeApp_keystore.jks -list -v
    

    パスを消去してキーストアを保存した場所に移動し、キーストーンをドラッグしてコマンドラインの-keystoreの後にドロップすると、パスが作成されます。

    また、Your_keystore_AliaseNameを消去して、作成時に使用したエイリアスのキーストーン名を入力します。

  5. 押す Enter パスワードを入力してください:)

  6. パスワードを入力しても、端末はキーボード入力を受信したことを表示しませんが、実際には受信します。パスワードを入力してを押します。 Enter パスワードが入力されていない場合でも.

9
fullMoon

Android Studioを使用している場合は、SHA-1およびMD5証明書フィンガープリント(debug、release ... すべてのビルドタイプ !!)をGradle Tasks)から高速で取得できます。

signingReport

SHA-1およびMD5証明書はMessages Logsに表示されています。

Androidプラグイン(Gradleアプリで設定)はデフォルトでデバッグモードを作成します。

com.Android.application

キーストアへのファイルルート:

HOME/.Android/debug.keystore

attachdebug.keystorebuild.gradleにすることをお勧めします。これを行うには、ファイルdebug.keystoreをアプリフォルダーに置き、次に Gradle appにSigningConfigsを追加します。

apply plugin: 'com.Android.application'

    Android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "Android"
                keyAlias "androiddebugkey"
                keyPassword "Android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "Android"
                keyAlias "androiddebugkey"
                keyPassword "Android"
            }
        }
        ........
    }

Extra:リリース用に作成したい場合は、ファイルrelease.keystoreをアプリフォルダーに置きます。 (この例では同じdebug.keystoreを使用しています。)

8
SergioLucas

Gnu/Linux - Mac - Windowsではとても簡単です。

最初: - このコマンドをコピーする

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android 

秒: Android Studioの端末にコマンドをコピーして貼り付けます enter image description here

結果!

enter image description here

頑張ってください!

8
David Hackro
  1. 右ペインのGradleアイコンをクリックしてください。
  2. Root Project Nameをクリックしてください。
  3. クリックタスク
  4. Androidをクリック
  5. SigningReportをクリック
  6. 下部のペインに、レポートの実行が表示されます。
  7. [タスク実行/テキストモードの切り替え]をクリックします。
  8. あなたはsha-1を見ることができます

Android Studio SHA-1

8
Sadegh-khan

Android Studio があるのなら、それはとても簡単です。 Android Studioを使用してMapActivityを作成し、作成したらgoogle_maps_api.xmlに移動します。そこにコメントで与えられたリンクがあるでしょう。ブラウザに貼り付けると、いくつかの詳細を入力するよう求められ、その後APIが生成されます。 keytoolなどを使う必要はありません。

スクリーンショット:

Enter image description here

7
Rizwan Ahmed

これは私の場合はうまくいきました:このパスに自動的に保存されたパス.keystoreファイルを与える代わりに %USERPROFILE% を使ってください C:Users /ユーザー名/ .Android

keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
6
KCN

簡単なコマンドを使う:

keytool -exportcert -keystoreデバッグまたはプロダクションキーストアへのパス-list -v

あなたはSHA1キーを取得します。

6
Sangeeta

Windows 10Android Studio 端末から:

keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.Android/debug.keystore -list -v

注:debug.keystoreの場合、パスワードは「Android」です。デバッグキーストアは通常"%USER_PROFILE%"/.Android/debug.keystoreにあります。

5
Javad Jafari

Android Studioを使用して、MD5、SHA-1フィンガープリントを見つけるための非常に簡単なプロセスを見つけました。

  1. プロジェクトを実行する
  2. Gradleメニューに移動します(メニュー:[表示] - > [ツール]ウィンドウ - > [Gradle])。
  3. Gradleウィンドウの 'signingReport'に行きます。 (あなたのプロジェクト - >タスク - > Android - > signingReport)
  4. それを実行します。 (ダブルクリックまたはCtrl + Shift + F10を押す)
  5. 実行ウィンドウでは、すべての情報が見つかります。

デバッグモードでのみ動作します。解放モードでは私はsha-1を見ることができません。これがgradlew signingReportの結果です

Variant: release
Config: none
----------
Variant: releaseUnitTest
Config: none
----------
Variant: debug
Config: debug
Store: path\Android\avd\.Android\debug.keystore
Alias: AndroidDebugKey
MD5: xx:xx:xx:62:86:B7:9C:BC:FB:AD:C8:C6:64:69:xx:xx
SHA1: xx:xx:xx:xx:0F:B0:82:86:1D:14:0D:AF:67:99:58:1A:01:xx:xx:xx
Valid until: Friday, July 19, 2047
----------

そのため、sha-1を取得するにはkeytoolを使用する必要があります。これが公式のFirebaseドキュメントです。

Get_sha-1_for_release

5
Md Sufi Khan

Softcoder で与えられた答えに1つ追加したい。私は何人かの人々が彼らの debug.keystore パスをcommand lineに正しく与えることができないのを見ました。彼らは彼らが上で受け入れられた正確なプロセスをしているのを見ます、しかしそれはうまくいきません。その時点でdebug.keystoreをドラッグしてコマンドラインにドロップしてみてください。受け入れられた答えがあなたのために働いていない場合、それは役立ちます。躊躇せずに全プロセスを実行します。いい答えでした。

5
Setu Basak

私はこのようにしました:

ステップ1: /このフォルダに行く

On Mac: /Users/<username>/.Android/

On Windows: C:\Documents and Settings\<username>\.Android\

On Linux: ~/.Android/

ステップ2: /このコマンドラインを実行:

keytool -list -v -keystore debug.keystore -storepass Android

SHA-1キーが見えます。

4

右側のパネルにあるGradleアイコンをクリックしてから、(ルート)をクリックします。

タスク> Android> signingReport

その後、Gradleスクリプトが実行され、鍵が見えます。

4
Balman Rawat

Android Studio V 1.5.1で新しい「Google Maps Project」を作成すると、最後の画面にgoogle_maps_api.xmlファイルが開き、画面に次の指示が表示されます。

リソース:

TODO:アプリケーションを実行する前に、Google Maps APIキーが必要です。

入手するには、このリンクをたどり、指示に従って、最後に「作成」を押してください。

https://console.developers.google.com/flows/enableapi?apiid=maps_Android_backend&keyType=CLIENT_SIDE_Android&r= あなたのSHA-1 +あなたのパッケージ名

次の行を使用して、資格情報を既存のキーに追加することもできます。
あなたのSHA-1:あなたのパッケージ名

あるいは、こちらの指示に従ってください。
https://developers.google.com/maps/documentation/Android/start#get-key

キーを取得したら(「AIza」で始まります)、このファイルの「google_maps_key」という文字列を置き換えます。
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

あなたの GOOGLE MAPSKEY を取得するには、ブラウザに表示されたURLリンクをカットアンドペーストして、新しいアプリケーションを作成するときに上記の手順に従ってください。 SHA-1Package namesはすでにリンクに含まれているので、それらを知る必要はありません。ただし、それらはプロジェクト内のresources>Values>google_maps_api.xmlファイルにあります。このファイルは、プロジェクトの作成に関する指示に従うと完了します。

2
Anthony

Keytoolを使用してAPI Managerからの指示を使用します。

あなたのAndroidManifest.xmlファイルからパッケージ名を入手してください。次に、次のコマンドを使って指紋を取得します。

keytool -list -v -keystore mystore.keystore

2
Elenasys
  • [ファイル]> [プロジェクト構造]に移動します。appから名前を指定したものをmobileまたはModulesから選択します。

  • Signingタブを選択します。

  • 証明書を追加することができます + ボタン。

1
Kabir

次のコマンドを使用して、システム名でAJAY SUNDRIYALを変更することができます。これはあなたのdebug.keystore専用です。これはあなたのために働きます。

C:\Program Files\Java\jdk1.8.0_91\bin>keytool -list -v -keystore "c:\users\AJAY SUNDRIYAL\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
1
SANJAY GUPTA

Google Maps にSHA1が必要な場合は、 LogCat にエラーログが表示されます。

1
Anton Smirnov

これは私のために働いた:

keytool -exportcert -alias androiddebugkey -keystore

デバッグまたはプロダクションキーストアへのパスをC:\ users\youruser.Android\debug.keystore -list -vのようにここに置きます

コマンドウィンドウまたはターミナルウィンドウのJava\jdk*\binディレクトリにすでにいることを確認してください。

その後、パスワードとしてAndroidを使用してください。

Webリソースが誤解を招く可能性があります。これらは働いているものです:

1
Jenia

キーストアのパスは二重引用符で囲まれています。それはうまくいっています。

keytool -list -v -keystore "C:\Users\App innovation\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
1
Happy Singh

最初のステップCドライブを開き、プログラムファイルを開く-> Javaフォルダーを開く-> Binを開き、jarsigner.exeでDoubleClick

次に、Cmdを開きます

C:\ Program Files\Java\jdk1.8.0_191\binに移動し、Enterを押してからC:\ Program Files\Java\jdk1.8.0_191\bin> keytool -list -keystore "F:\ BTG UPDATE BUILD\Beyond_The_Game。 jks」

ジャストショーの入力Kaystoerパスワードの入力***** PAsswordの入力最後に入力SHAキー感謝します enter image description here

0
Rachit Mishra

簡単、スプラッシュスクリーンでこのメソッドを呼び出す:hash()とgetCertificateSHA1Fingerprint()、そしてキーがログに表示されます

private void hash() {


            PackageInfo info;
            try {

                info = getPackageManager().getPackageInfo(
                        this.getPackageName(), PackageManager.GET_SIGNATURES);

                for (Android.content.pm.Signature signature : info.signatures) {
                    MessageDigest md;
                    md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.e("sagar sha key", md.toString());
                    String something = new String(Base64.encode(md.digest(), 0));
                    Log.e("sagar Hash key", something);
                    System.out.println("Hash key" + something);
                }

            } catch (PackageManager.NameNotFoundException e1) {
                Log.e("name not found", e1.toString());
            } catch (NoSuchAlgorithmException e) {
                Log.e("no such an algorithm", e.toString());
            } catch (Exception e) {
                Log.e("exception", e.toString());
            }
        }

        private void getCertificateSHA1Fingerprint() {
            PackageManager pm = this.getPackageManager();
            String packageName = this.getPackageName();
            int flags = PackageManager.GET_SIGNATURES;
            PackageInfo packageInfo = null;
            try {
                packageInfo = pm.getPackageInfo(packageName, flags);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
            Signature[] signatures = packageInfo.signatures;
            byte[] cert = signatures[0].toByteArray();
            InputStream input = new ByteArrayInputStream(cert);
            CertificateFactory cf = null;
            try {
                cf = CertificateFactory.getInstance("X509");
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            X509Certificate c = null;
            try {
                c = (X509Certificate) cf.generateCertificate(input);
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            String hexString = "";
            try {
                MessageDigest md = MessageDigest.getInstance("SHA1");
                byte[] publicKey = md.digest(c.getEncoded());
                Log.e("sagar SHA",byte2HexFormatted(publicKey));
            } catch (NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (CertificateEncodingException e) {
                e.printStackTrace();
            }
        }

        public static String byte2HexFormatted(byte[] arr) {
            StringBuilder str = new StringBuilder(arr.length * 2);
            for (int i = 0; i < arr.length; i++) {
                String h = Integer.toHexString(arr[i]);
                int l = h.length();
                if (l == 1) h = "0" + h;
                if (l > 2) h = h.substring(l - 2, l);
                str.append(h.toUpperCase());
                if (i < (arr.length - 1)) str.append(':');
            }
            return str.toString();
        }

ありがとうございました。

0
S G

指紋を取得する最も簡単な方法は、ドロップダウンをクリックして[ビルド]をクリックして、アプリから署名付きレポートに切り替えることです。

enter image description here

その後、デバッグレポートとスタックトレースが表示される下部ペインにsha1フィンガープリントが表示されます。アプリをデバイスやエミュレータで実行する場合は、N.Bを忘れずにアプリに切り替えてください。

0
The_Martian