2014-12-08 15 views
6

Ho passato molto tempo stasera cercando di capire come far funzionare la mia Google Map che funzionava nella versione di debug della mia applicazione Android nella versione versione. Ci sono stati alcuni problemi diversi che sono emersi. Alcuni frammenti di messaggi Stack Overflow hanno aiutato, ma ho pensato che sarebbe stato utile elencare più dettagli per l'intero processo, compresi i problemi che avevo:Ottenere Android Google Map v2 funziona nella versione di rilascio generando l'impronta digitale SHA1 per la chiave API

1) Come/dove si specifica qualcosa di diverso per la propria versione versione?

2) Come si esegue l'eseguibile keytool necessario per ottenere l'impronta digitale della versione di rilascio?

3) Perché è stato visualizzato il messaggio "Il file di archivio di chiavi esiste ma è vuoto" durante l'esecuzione di keytool?

+0

Volete 2H: 45: ZH: .......: OH quel tipo di SHA-1 –

risposta

15

1) Come specificato in un paio di altri messaggi Stack Overflow, è possibile utilizzare la stessa chiave API di Google per entrambe le versioni di debug e release, ma è necessario fornire le impronte digitali delle chiavi di debug e release nella Google Developers Console .

  • Log in Google Developers Console https://console.developers.google.com
  • Scegliete il progetto appropriato
  • Sul lato sinistro, scegliere le credenziali sotto "API & auth"
  • Supponendo che si dispone già di una chiave API generato per le applicazioni Android, è dovrebbe già vedere l'applicazione elencata come "applicazione consentita" con l'impronta digitale di debug. Fai clic su "Modifica applicazioni Android consentite".
  • Si vorrà aggiungere un'altra linea per l'applicazione, ma con la sua impronta digitale di rilascio. Per ottenere che ...

2) Google menziona in quella finestra di dialogo che è necessario eseguire

keytool -list -v -keystore mystore.keystore 

Ma cliccando su "Maggiori informazioni" e andare un po 'oltre, ciò che si vuole veramente correre è

keytool -exportcert -alias MY_RELEASE_KEY_ALIAS -keystore MY_FULL_PATH_TO_RELEASE_KEYSTORE_FILE -list -v 

Quindi verrà richiesta la password del keystore. Un pezzo che non è menzionato nei documenti è dove si trova il programma keytool. È nella cartella bin JDK. Quindi su Windows, qualcosa come C: \ Programmi \ Java \ jdk1.8.0_20 \ bin

3) Dopo aver aperto una finestra della console nella cartella bin Java e eseguito il keytool come sopra, ricevevo un errore che detto "il file keystore esiste ma è vuoto". Alla fine mi sono reso conto che, quando si specificava il percorso completo del mio file di archivio delle chiavi di rilascio, avevo solo specificato il nome della cartella, ma ho dimenticato di includere il nome del file effettivo, anche se c'era un solo file nella cartella. Quindi MY_FULL_PATH_TO_RELEASE_KEYSTORE_FILE sopra dovrebbe includere il nome del file .keystore

Dopo tutto ciò, vi verranno fornite finalmente diverse impronte digitali, incluso lo SHA1. È possibile copiarlo e tornare indietro e incollarlo come una nuova riga nelle applicazioni Android consentite, con il nome del pacchetto alla fine separato da un punto e virgola, proprio come quello di debug.

+0

fantastico ... ti ringrazio davvero! – Antonio

+0

Nel primo passaggio, che cosa significa "applicazioni consentite"? Non vedo nulla del genere –

1

Seguire le istruzioni fornite here. Dopo aver creato il tuo progetto in Google Developers Console, seleziona API, ti verrà richiesta una sezione di API popolari, seleziona l'API di Google Maps per Android. Premi abilita API.(l'immagine qui sotto è che mostra i passaggi della nuova versione della console) console's new version

Se si sta ancora utilizzando la vecchia console, abilitare l'API, selezionando Servizi, quindi passare il pulsante ON :

enter image description here Nota: non è necessario attivare le API per la versione di debug!

Se la mappa non viene ancora visualizzata, provare a rigenerare la chiave!

(nuova versione) enter image description here

(vecchia versione)

enter image description here Immettere la nuova chiave API quindi progetto Sync con Gradle file!

Problemi correlati