Comment obtenir le certificat d'empreinte digitale SHA-1 sur Android Studio pour le mode de débogage?

je suis passé de Eclipse à Android Studio . Maintenant, j'essaie de travailler sur mon application Map. Donc j'ai besoin de mon numéro de certificat d'empreinte SHA-1.

quand J'utilisais Eclipse, C'était juste sous Windows -> Preferences -> Android -> Build . Mais dans Android Studio Je ne pouvais pas trouver une option comme celle-ci de sorte que je pouvais trouver facilement l'empreinte digitale. Je suis avec Windows. J'ai lu à partir de ce lien que:

Android Studio signe votre application en mode débug automatiquement lorsque vous exécuter ou déboguer votre projet de L'IDE.

alors j'ai essayé d'exécuter ceci en ligne de commande après avoir paramétré mon chemin de bin Java à partir de ce lien et malheureusement je n'ai pas pu trouver mon empreinte digitale. C'est dire qu'il est illégal option .

keytool -list -v -keystore "%USERPROFILE%.androiddebug.keystore" -alias androiddebugkey -storepass android -keypass android

y a-t-il un moyen de trouver L'empreinte SHA-1 D'Android Studio comme si C'était très facile à Eclipse? Comme je suis débutant dans Android Studio, Quel est le processus complet pour le trouver?

une autre chose que je veux ajouter est que J'ai mon Eclipse génère L'empreinte SHA-1 et auparavant j'ai mon application enregistrée sur cette empreinte dans Google developer console, et j'ai travaillé sur cette application dans Eclipse par cette clé API. Est-ce que la même clé API peut être travaillée sur ce mon projet en Android Studio?

365
demandé sur Peter Mortensen 2014-12-22 22:47:15

30 réponses

les plus faciles de tous les temps:

mise à jour ajouté pour Android Studio V 2.2 dans la dernière étape

Il y a deux façons de le faire.

1. De façon plus rapide :

  1. Ouvrir Android Studio
  2. ouvrez votre projet
  3. cliquez sur Gradle (à partir du panneau latéral droit, vous verrez Gradle Bar )
  4. , Cliquez sur Refresh (Cliquez sur Actualiser dans Gradle Bar , vous verrez Liste Gradle scripts de votre Projet)
  5. cliquez sur votre projet (votre formulaire de nom de projet liste (root))
  6. cliquez sur Tâches
  7. cliquez sur Android
  8. double clic sur signingReport (vous obtiendrez SHA1 et MD5 dans Exécuter Bar (Parfois, il sera dans Gradle Console))
  9. , Sélectionnez app module module de sélection déroulante pour exécuter ou déboguer votre application

Vérifiez la capture d'écran ci-dessous:

enter image description here

2. Travail avec L'activité de Google Maps :

  1. Ouvrir Android Studio
  2. Ouvrez Votre Projet
  3. cliquez sur fichier menu - > sélectionnez Nouveau - > cliquez sur Google - > sélectionnez activité de Google Maps
  4. "
  5. une boîte de dialogue apparaîtrait -> cliquez sur terminer
  6. Android Studio générerait automatiquement un XML fichier nommé avec google_maps_api.xml
  7. vous obtiendriez debug SHA1 ici (à ligne numéro 10 du fichier XML)

Vérifier la Capture d'écran ci-dessous:

Enter image description here

Android Studio V 2.2 Mise à jour

il y a un problème avec exécution .

Solution:

  • cliquez sur exécution des tâches à bascule/mode texte à partir de barre D'exécution

Vérifier la Capture d'écran ci-dessous:

enter image description here

fait.

965
répondu Hiren Patel 2017-07-04 15:14:23

mon problème est le même que j'ai également déplacé mon Google Maps projet de Eclipse à Android Studio . J'ai résolu mon problème en suivant ceci:

allez dans votre répertoire Java bin via la commande:

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

tapez maintenant la commande ci-dessous dans votre fenêtre de commande (CMD.EXE):

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

exemple:

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

ou vous pouvez simplement écrire ceci dans cmd si vous ne connaissez pas le nom d'utilisateur:

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

et vous obtiendrez le SHA1.

puis j'ai créé une nouvelle clé de https://code.google.com/apis/console à cause de mon nom de paquet a été changé et puis utiliser cette clé dans mon application. Il fonctionne très bien.

assurez-vous que vous êtes dans BIN dossier de jdkX.X. X_XX (mon nom de dossier c'est jdk1.7.0_71) , ou bien si vous ne savez pas quel nom de dossier vous avez, trouvez-le en ouvrant le dossier Java, et vous verrez Quel est le nom du dossier, mais vous devez être dans votre dossier BIN et ensuite exécuter cette commande. Aujourd'hui j'ai obtenu ma valeur SHA1 dans une fenêtre de commande cmd par la procédure ci-dessus.

SNAPSHOT:

Enter image description here

274
répondu Jamil 2016-09-16 04:29:07

je viens de trouver le cas pour obtenir SHA-1 Dans Android Studio:

  1. , Cliquez sur votre panier et choisissez Nouvelle -> Google -> Google Maps "l'Activité 151960920"
  2. Android Studio vous redirige vers google_maps_api.xml

et vous verrez tout ce dont vous avez besoin pour obtenir google_maps_key .

Image

112
répondu Stanislav Bondar 2016-09-30 19:33:15

pour Mac, cela a fonctionné parfaitement:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
105
répondu JoeNCA 2018-03-27 15:18:46

la meilleure solution pour générer une clé SHA-1 pour Android est de Android Studio .

cliquez sur Gradle à l'extrême droite:

, Cliquez sur l'icône d'actualisation, et vous verrez le nom de l'application:

cliquez sur tâches - > Rapport - > Rapport De Signature :

trouver la clé SHA-1 sur la partie inférieure de la console:

37
répondu Ismaran Duwadi 2016-09-30 19:20:43

[mise à Jour 2017]

Étape 1: sur le côté droit supérieur de studio Android cliquez sur L'option Gradle.

Android Studio Click On Gradle option

Étape 2:

-- cliquez sur Refresh (cliquez sur Refresh from Gradle Bar, vous verrez la liste des scripts de Gradle de votre projet)

-- cliquez sur votre Projet (Nom du Projet forme de Liste (racine))

-- cliquez sur Tâches

-- cliquez sur Android

-- double clic sur signingReport (vous obtiendrez SHA1 et MD5 dans la Console Gradle / barre D'exécution)

enter image description here

Étape 3: Cliquez sur L'option Gradle Console pour voir votre clé SHA1.

enter image description here

Étape 4: Maintenant vous avez la clé SHA mais vous ne pouvez pas exécuter votre projet.C'est pourquoi changez votre configuration en mode app. Voir l'image ci-dessous.

enter image description here

comme ça.

enter image description here

Étape 5: Happy Coding!!

34
répondu Dinesh Sunny 2017-01-12 19:12:52

je vais avec la réponse de @Hiren Patel mais un peu de changement dans android studio 2.2

enter image description here

22
répondu Arpit Patel 2016-10-04 06:26:06

Pour Linux

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 
14
répondu vicky 2015-09-11 12:56:05

j'ai directement utilisé la commande suivante de mon Mac en utilisant le terminal. J'ai le doigt de SHA1. C'est la commande:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
12
répondu Hanuman 2016-09-30 19:01:47

Pour obtenir SHA1 pour une production keystore:

  1. Build --> Generate Signed APK...

  2. créer keystore avec mot de passe et suivre les étapes

  3. allez à votre Mac/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home / bin et faites glisser le dossier bin vers le terminal après la commande de cd pour le pointer vers lui afin que vous puissiez utiliser l'outil keytool. Donc, dans terminal écrivez cd (drag bin ici) puis appuyez sur Entrée.

  4. alors, copiez et collez ceci dans le terminal:

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

    effacer mon chemin et aller où vous avez stocké votre keystore et faire glisser votre keystone et le laisser tomber après -keystore dans la ligne de commande de sorte que le chemin sera créé.

    aussi, effacez Votre_keystore_aliasename pour mettre votre nom d'alias keystone que vous avez utilisé lorsque vous l'avez créé.

  5. appuyez sur entrez et entrez le mot de passe:)

  6. lorsque vous entrez le mot de passe, le terminal ne montrera pas qu'il reçoit des entrées clavier, mais il le fait, donc mettez le mot de passe et appuyez sur entrer même si vous ne voyez pas le mot de passe est tapé.

9
répondu fullMoon 2016-09-30 19:11:13

c'est très facile dans Gnu/Linux - Mac - Windows

First: - copiez cette commande

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

Second: maintenant copier et coller la commande dans le terminal L'Android Studio enter image description here

Résultat!

enter image description here

Bonne Chance!!

8
répondu David Hackro 2016-03-18 17:19:01

si vous utilisez Android Studio, vous pouvez obtenir le certificat SHA-1 et MD5 fingerprint (debug, release... tous les types de construction !! rapide par le biais de Gradle Tâches :

signingReport

les certificats SHA-1 et MD5 sont affichés dans Messages Logs .

Plugin Android (configuré dans le Gradle app) crée un mode de débogage par défaut.

com.Android.application

Fichier d'itinéraire à keystore:

HOME/.android/debug.keystore

je recommande à d'attacher debug.keystore à build.gradle . Pour ce faire, mettez un fichier, debug.keystore , dans un dossier app et ajoutez SigningConfigs dans Gradle app:

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: si vous voulez crée pour la libération, mettre un fichier release.keystore , dans un dossier app. (Cet exemple utilise le même debug.keystore .)

8
répondu SergioLucas 2016-09-30 19:34:44

Si vous avez Android Studio , alors il est très très simple. Il suffit de créer une Mapactivité en utilisant Android Studio et après la création allez dans google_maps_api.XML. Là il y aura un lien donné dans les commentaires. Si vous le collez dans votre navigateur, il vous demandera quelques détails à remplir et ensuite votre API sera générée. Il n'est pas nécessaire d'utiliser keytool et tout.

capture d'Écran:

Enter image description here

7
répondu Rizwan Ahmed 2016-09-30 19:01:01
  1. cliquez sur L'icône Gradle dans le panneau droit.
  2. cliquez sur le nom du projet Root.
  3. , Cliquez Sur Tâches
  4. Cliquez Sur Android
  5. Cliquez sur signingReport
  6. dans la partie inférieure où vous voyez le rapport de course
  7. , Cliquez sur "activer / désactiver les Tâches Execytions/mode texte"
  8. vous pouvez voir le sha-1

Android Studio SHA-1

7
répondu Sadegh-khan 2017-10-16 10:13:50

Pour Windows 10 , de la Android Studio terminal:

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

Note: pour le debug.keystore , le mot de passe est"android". Le keystore de débogage est typiquement situé à "%USER_PROFILE%"/.android/debug.keystore .

6
répondu Javad Jafari 2016-09-30 19:14:34

je veux ajouter une chose à la réponse donnée par Softcoder . J'ai vu que certaines personnes ne pouvaient pas donner leur .keystore chemin correctement sur le command line . Ils voient qu'ils font exactement le processus accepté ci-dessus, mais cela ne fonctionne pas. À ce point, essayez de faire glisser le débogage.keystore et jetez-le sur la ligne de commande. Cela aidera si la réponse acceptée ne fonctionne pas pour vous. Faites tout le processus sans hésitation. C'était un belle réponse.

6
répondu Setu Basak 2017-05-23 12:10:48

utiliser la commande simple:

keytool -exportcert -keystore chemin-de-debug-ou-production-keystore -liste -v

et vous obtiendrez la clé SHA1.

6
répondu Sangeeta 2016-11-10 14:18:17

j'ai trouvé un processus très facile pour vous trouver MD5, empreinte SHA-1 en utilisant Android Studio.

  1. Exécuter votre projet
  2. Aller à Gradle Menu (Menu: Affichage -> Outil -> Gradle)
  3. allez à 'signingReport' dans Gradle window. (Votre projet -> tâches -> android -> signingReport)
  4. lancez-le. (En double-clic ou Ctrl + Shift + F10)
  5. Dans La Course fenêtre vous trouverez toutes les informations.

cela ne fonctionne que pour le mode de débogage. En mode réel, Je ne vois pas sha-1. Ici le résultat de 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
----------

donc je dois utiliser keytool pour obtenir sha-1. Ici la base officielle doc:

Get_sha-1_for_release

6
répondu Md Sufi Khan 2017-10-03 11:49:34

cela a fonctionné dans mon cas: utilisez %USERPROFILE% au lieu de donner le chemin .fichier keystore stocké dans ce chemin automatiquement C:Users/user nom/.android :

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
5
répondu KCN 2016-09-30 19:18:54

cliquez sur l'icône Gradle sur le panneau droit, puis cliquez sur le (root).

tâches > android > signingReport

alors le script Gradle s'exécutera, et vous verrez vos clés.

4
répondu Balman Rawat 2016-01-12 07:54:33

je le fais de cette façon:

Étape 1: Allez dans ce dossier

Sur Mac:/Users//.android /

sous Windows: C:\Documents et paramètres\.android\

Sur Linux: ~/.android /

Étape 2: Lancez cette ligne de commande:

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

vous verrez la clé SHA-1.

3
répondu Son Nguyen Thanh 2016-09-30 19:23:42

utilisez les instructions du gestionnaire D'API en utilisant keytool:

obtenez le nom du paquet de votre AndroidManifest.fichier xml. Ensuite, utilisez la commande suivante pour obtenir l'empreinte:

keytool -list -v -keystore mystore.keystore

2
répondu Jorgesys 2016-04-16 23:22:51

lors de la création d'un nouveau "projet Google Maps", dans Android Studio V 1.5.1, le dernier écran ouvre le fichier google_maps_api.xml et affiche l'écran avec les instructions suivantes:

ressources:

TODO: avant d'exécuter votre application, vous avez besoin d'une clé API Google Maps.

pour obtenir un, Suivez ce lien, suivez les instructions et appuyez sur "Créer" à la fin:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r = votre SHA-1 + votre nom de paquet

vous pouvez également ajouter vos justificatifs d'identité à une clé existante, en utilisant cette ligne:

VOTRE SHA-1:VOTRE NOM DE PAQUET

alternativement, suivre les instructions ici:

https://developers.google.com/maps/documentation/android/start#get-key

une fois que vous avez votre clé (elle commence par "AIza"), remplacez la chaîne "google_maps_key" dans ce fichier.

<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

pour obtenir votre clé GOOGLE MAPS il suffit de couper et coller le lien URL donné dans votre navigateur et de suivre les instructions ci-dessus au moment de la création de la nouvelle application. Le SHA-1 et Package names sont déjà dans le lien donné, de sorte que vous n'avez pas besoin de les connaître. Ils seront cependant dans votre projet dans le fichier resources>Values>google_maps_api.xml qui est complété lorsque vous suivez les instructions sur la création du projet.

2
répondu Anthony 2016-09-30 19:18:08

vous pouvez utiliser la commande suivante et changer AJAY SUNDRIYAL avec votre nom de système.C'est uniquement pour le débogage.fichier de stockage des clés.Cela fonctionne pour vous.

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
répondu SANJAY GUPTA 2016-08-24 13:19:36

cela a fonctionné pour moi:

keytool -exportcert -alias androiddebugkey -keystore

mettre chemin-à-debug-ou-production-keystore ici comme C:\users\youruser.android\debug.keystore -liste -v

assurez-vous que vous êtes déjà dans le répertoire Java\jdk*\bin dans une fenêtre de commande ou de terminal.

puis utilisez Android comme mot de passe.

parfois, les ressources web peuvent être trompeuses. Ce sont ceux qui fonctionnent:

1
répondu Jenia 2016-09-30 18:59:02

le chemin du clavier est en guillemets. Il fonctionne très bien.

keytool -list -v -keystore "C:\Users\App innovation\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
1
répondu Happy Singh 2016-09-30 19:07:47

si vous avez besoin de SHA1 pour Google Maps , vous pouvez juste voir votre erreur se connecter dans LogCat .

1
répondu Anton Smirnov 2016-09-30 19:15:24

aller au fichier > Structure du projet Sélectionnez 'app' ou' mobile 'peu importe le nom que vous avez donné à partir de'Modules' Choisissez l'onglet "Signature".

Vous pouvez ajouter un certificat en cliquant sur le bouton'+'.

0
répondu skabir 2014-12-23 08:21:08

la façon la plus facile d'obtenir l'empreinte digitale est de passer de l'application au rapport signé en cliquant sur le drop down et en cliquant sur build.

enter image description here

alors vous pourrez voir l'empreinte de sha1 dans le volet inférieur où vous verrez le rapport de débogage et la trace de la pile. N. B n'oubliez pas de revenir à l'application lorsque vous souhaitez exécuter votre application sur un périphérique ou un émulateur.

0
répondu The_Martian 2016-05-30 22:07:51

Simple, appelez cette méthode dans votre écran Splash: hash () et getCertificateSHA1Fingerprint (), puis les touches seraient visibles dans le log

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();
        }

Merci.

0
répondu S G 2018-03-16 12:32:38