studio - google maps view android




Come ottenere il certificato di impronte digitali SHA-1 in Android Studio per la modalità debug? (20)

Mi sono spostato da Eclipse ad Android Studio . Ora sto cercando di lavorare sulla mia app Map. Quindi ho bisogno del mio numero di certificato dell'impronta digitale SHA-1.

Quando stavo usando Eclipse era proprio sotto Windows -> Preferenze -> Android -> Build . Ma in Android Studio non sono riuscito a trovare alcuna opzione come questa in modo da poter facilmente trovare l'impronta digitale. Sto usando Windows. Ho letto da questo link che:

Android Studio firma automaticamente la tua app in modalità debug quando esegui o esegui il debug del tuo progetto dall'IDE.

Quindi ho provato a eseguirlo nella riga di comando dopo aver impostato il percorso del mio bin Java da questo link e purtroppo non sono riuscito a trovare la mia impronta digitale. Sta dicendo che è un'opzione illegale .

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

C'è un modo per trovare l'impronta digitale SHA-1 da Android Studio come è stato molto facile in Eclipse? Dato che sono un principiante in Android Studio, qual è il processo completo per trovarlo?

Un'altra cosa che voglio aggiungere è che il mio Eclipse genera l'impronta digitale SHA-1 e in precedenza ho registrato la mia app su quell'impronta digitale nella console per sviluppatori di Google, e ho lavorato su quell'app in Eclipse con quella chiave API. È possibile utilizzare la stessa chiave API su questo mio progetto in Android Studio?


Ho trovato un processo molto semplice per trovare MD5, SHA-1 fingerprint utilizzando Android Studio.

  1. Esegui il tuo progetto
  2. Vai al menu Gradle (Menu: Visualizza -> Finestre degli strumenti -> Gradle)
  3. Vai a 'signingReport' nella finestra Gradle. (Il tuo progetto -> Attività -> android -> signingReport)
  4. Eseguirlo. (Usando il doppio clic o Ctrl + Maiusc + F10)
  5. Nella finestra Esegui troverai tutte le informazioni.

Funziona solo per la modalità debug. In modalità realease non riesco a vedere sha-1. Ecco il risultato della 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
----------

Quindi devo usare keytool per ottenere sha-1. Ecco il documento ufficiale di Firebase:

Get_sha-1_for_release


  1. Fai clic sull'icona Gradle nel riquadro destro.
  2. Fare clic sul nome del progetto principale.
  3. Fai clic su Attività
  4. Fai clic su Android
  5. Fai clic su Firma Segnala
  6. nel riquadro inferiore in cui è visualizzato il rapporto Esegui
  7. Fai clic su "Attiva / disattiva attività / modalità testo"
  8. puoi vedere lo sha-1


Fai clic sull'icona Gradle nel pannello di destra, quindi fai clic su (radice).

Attività> android> signingReport

Quindi verrà eseguito lo script Gradle e vedrai le tue chiavi.


Ho appena trovato il caso per ottenere SHA-1 in Android Studio:

  1. Fai clic sul pacchetto e scegli Nuovo -> Google -> Attività di Google Maps
  2. Android Studio ti reindirizza a google_maps_api.xml

E vedrai tutto ciò che ti serve per ottenere google_maps_key .


Ho usato direttamente il seguente comando dal mio Mac usando il terminale. Ho SHA1 Finger. Questo è il comando:

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

Il mio problema è lo stesso in cui ho spostato il mio progetto Google Maps da Eclipse ad Android Studio . Ho risolto il mio problema seguendo questo:

Vai alla tua directory bin Java tramite il comando:

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

Ora digita il comando seguente nella finestra dei comandi (CMD.EXE):

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

Esempio:

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

Oppure puoi semplicemente scrivere questo in cmd se non conosci il nome utente:

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

E otterrai SHA1.

Quindi ho creato una nuova chiave da https://code.google.com/apis/console perché il nome del mio pacchetto è stato modificato e quindi utilizzo questa chiave nella mia applicazione. Funziona bene

Assicurati di trovarti nella cartella BIN di jdkX.X.X_XX (il mio nome di cartella è jdk1.7.0_71) , oppure se non sai quale nome di cartella hai, allora trovalo aprendo la cartella Java e vedrai qual è il nome della cartella, ma è necessario trovarsi nella cartella BIN e quindi eseguire questo comando. Oggi ho ottenuto il mio valore SHA1 in una finestra di comando cmd con la procedura sopra.

ISTANTANEA:


Il percorso del keystore è tra virgolette. Funziona benissimo.

keytool -list -v -keystore "C:\Users\App innovation\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

La migliore soluzione per generare una chiave SHA-1 per Android è Android Studio .

Fai clic su Gradle all'estrema destra:

Fai clic sull'icona di aggiornamento e vedrai il nome dell'app:

Fai clic su Attività -> Rapporto -> Rapporto firma :

Trova la chiave SHA-1 nella parte inferiore della console:


Per Mac, ha funzionato perfettamente:

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

Per ottenere SHA1 per un keystore di produzione:

  1. Build -> Genera APK firmato ...

  2. Crea keystore con password e segui i passaggi

  3. Vai al tuo Mac / Libreria / Java / JavaVirtualMachines / jdk1.8.0_20.jdk / Sommario / Home / bin e trascina la cartella bin sul terminale dopo il comando cd per puntarlo in modo da poter utilizzare lo strumento keytool. Quindi, nel terminale scrivi cd (trascina il cestino qui) quindi premi invio.

  4. Quindi, copia e incolla questo nel terminale:

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

    Cancella il mio percorso e vai dove hai memorizzato il tuo keystore e trascina il keystone e rilascialo dopo -keystore nella riga di comando in modo che il percorso venga creato.

    Inoltre, cancella Your_keystore_AliaseName per inserire il nome alias keystone che hai usato durante la creazione.

  5. Premi Invio e inserisci la password :)

  6. Quando inserisci la password, il terminale non mostrerà che riceve le voci della tastiera, ma in realtà lo fa, quindi inserisci la password e premi Invio anche se non vedi che la password è stata digitata.


Quando si crea un nuovo "Progetto Google Maps", in Android Studio V 1.5.1, l'ultima schermata apre il file google_maps_api.xml e visualizza la schermata con le istruzioni come segue:

risorse:

TODO: prima di eseguire l'applicazione, è necessaria una chiave API di Google Maps.

Per ottenerne uno, segui questo link, segui le indicazioni e premi "Crea" alla fine:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= YOUR SHA-1 + IL TUO NOME DEL PACCHETTO

Puoi anche aggiungere le tue credenziali a una chiave esistente, usando questa riga:
IL TUO SHA-1: IL TUO NOME DEL PACCHETTO

In alternativa, seguire le indicazioni qui:
https://developers.google.com/maps/documentation/android/start#get-key

Una volta che hai la chiave (inizia con "AIza"), sostituisci la stringa "google_maps_key" in questo file.
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

Per ottenere il TUO TASTO MAPPE GOOGLE basta tagliare e incollare il collegamento URL fornito nel browser e seguire le istruzioni sopra al momento della creazione della nuova applicazione. I Package names SHA-1 e Package names trovano già nel collegamento indicato, quindi non è necessario conoscerli. Saranno comunque nel tuo progetto nel file resources>Values>google_maps_api.xml che viene completato quando segui le istruzioni per la creazione del progetto.


Questo ha funzionato nel mio caso: Usa % USERPROFILE% invece di fornire automaticamente il percorso .keystore file memorizzato in questo percorso C: Utenti / nome utente / .android :

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

Se hai Android Studio , è molto semplice. Basta creare un MapActivity usando Android Studio e dopo averlo creato, vai su google_maps_api.xml. Lì ci sarà un link fornito nei commenti. Se lo incolli nel tuo browser, ti verrà chiesto di inserire alcuni dettagli e successivamente verrà generata la tua API. Non è necessario utilizzare keytool e tutto il resto.

Immagine dello schermo:



Usa un comando semplice:

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

e otterrai la chiave SHA1.


Utilizzare le istruzioni da Gestione API utilizzando keytool:

Ottieni il nome del pacchetto dal tuo file AndroidManifest.xml. Quindi utilizzare il comando seguente per ottenere l'impronta digitale:

keytool -list -v -keystore mystore.keystore


vado con la risposta di @Hiren Patel ma cambio leggermente in Android Studio 2.2


I modi più semplici di sempre:

Aggiornamento aggiunto per Android Studio V 2.2 nell'ultimo passaggio

Ci sono due modi per farlo.

1. Modo più veloce :

  1. Apri Android Studio
  2. Apri il tuo progetto
  3. Fai clic su Gradle (dal pannello laterale destro, vedrai la barra del Gradle )
  4. Fai clic su Aggiorna (fai clic su Aggiorna dalla barra dei gradi , vedrai gli script Elenco dei gradi del tuo progetto)
  5. Fai clic su Il tuo progetto ( Elenco dei moduli del nome del tuo progetto (root))
  6. Fai clic su Attività
  7. Clicca su Android
  8. Fai doppio clic su SignReport (otterrai SHA1 e MD5 in Run Bar (a volte sarà in Gradle Console))
  9. Seleziona il modulo dell'app dal menu a discesa di selezione del modulo per eseguire o eseguire il debug dell'applicazione

Controlla lo screenshot qui sotto:

2. Lavora con l'attività di Google Maps :

  1. Apri Android Studio
  2. Apri il tuo progetto
  3. Fai clic sul menu File -> Seleziona nuovo -> Fai clic su Google -> Seleziona attività di Google Maps
  4. Apparirà una finestra di dialogo -> Fare clic su Fine
  5. Android Studio genererebbe automaticamente un file XML denominato con google_maps_api.xml
  6. Qui otterresti la chiave di debug SHA1 (alla riga numero 10 del file XML)

Controlla la schermata qui sotto:

Aggiornamento di Android Studio V 2.2

Si è verificato un problema con Execution .

Soluzione:

  • Fare clic su Attiva / disattiva esecuzione / modalità testo dalla barra Esegui

Controlla la schermata qui sotto:

Fatto.


Semplice, chiama questo metodo nella tua schermata iniziale: hash () e getCertificateSHA1Fingerprint (), quindi le chiavi sarebbero visibili nel registro

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

Grazie.


[Aggiornato 2017]

Passaggio 1: in alto a destra di Android Studio Fai clic sull'opzione Gradle.

Passo 2:

- Fai clic su Aggiorna (fai clic su Aggiorna dalla barra dei gradi, vedrai gli elenchi degli script dei gradi del tuo progetto)

- Fai clic su Il tuo progetto (Elenco dei moduli del nome del tuo progetto (radice))

- Fai clic su Attività

- Fai clic su Android

- Fai doppio clic su SignReport (otterrai SHA1 e MD5 in Gradle Console / Run Bar)

Passaggio 3: fare clic sull'opzione Gradle Console presente nella parte inferiore di Android Studio per visualizzare la chiave SHA1.

Passaggio 4: ora hai la chiave SHA ma non puoi eseguire il tuo progetto, ecco perché cambia la configurazione in modalità app. Vedi l'immagine sotto.

Come questo.

Passaggio 5: Happy Coding !!





android-studio