In questa pagina viene descritto come risolvere i problemi che potresti riscontrare durante sviluppare giochi per Android con i servizi per i giochi di Google Play.
Logging
Per risolvere i problemi relativi al tuo gioco, puoi attivare il logging dettagliato
sul tuo dispositivo usando il comando adb shell
. Puoi quindi visualizzare
I messaggi di log dei servizi per i giochi di Google Play mediante logcat.
Attiva registrazione
Per attivare il logging sul tuo dispositivo di test:
Collega il dispositivo a una macchina su cui è installato l'SDK Android.
Apri un terminale ed esegui questo comando:
adb shell setprop log.tag.Games VERBOSE
Esegui il gioco sul dispositivo e riproduci il problema che stai tentando di risolvere. eseguire il debug.
Visualizza i log:
adb logcat
Disabilita logging
Per disattivare il logging dettagliato per i servizi per i giochi di Play sul tuo dispositivo e ripristinare il comportamento di logging originale, esegui questo comando:
adb shell setprop log.tag.Games INFO
Impossibile accedere
Se non riesci a far partecipare i giocatori al tuo gioco, assicurati innanzitutto di avere seguito le istruzioni per crea i tuoi ID cliente e configurare i servizi per i giochi. Se continui a riscontrare errori di accesso, controlla i seguenti elementi per assicurarti che il gioco sia configurato correttamente.
Controllare i tag dei metadati
AndroidManifest.xml
deve contenere un tag dei metadati dei giochi. Per verificare
che i tag dei metadati siano impostati correttamente:
Apri
AndroidManifest.xml
e verifica che contenga un tagmeta-data
, come mostrato di seguito:<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
Individua la definizione della risorsa
@string/app_id
. Di solito è definito in un file XML che si trova nella directoryres/xml
, ad esempiores/xml/strings.xml
ores/xml/ids.xml
.Verifica che il valore della risorsa
@string/app_id
corrisponda all'ID numerico della tua applicazione. Il valore di questa risorsa deve contenere solo cifre. Ad esempio:<string name="app_id">123456789012</string>
Controllare il nome del pacchetto
Il nome del pacchetto del gioco deve corrispondere a quello indicato nel tuo ID client. Per verificare il nome del pacchetto:
Apri
AndroidManifest.xml
e verifica che il nome del pacchetto del gioco sia corretto. Il pacchetto name è il valore dell'attributopackage
nel tagmanifest
.Verifica il nome del pacchetto specificato durante la creazione dell'ID client. Per eseguire la verifica il nome del pacchetto in Google Play Console, vai alla Play Console e fai clic sulla voce corrispondente al tuo gioco.
Vai alla scheda App collegate ed esamina l'elenco degli ID client. Là Deve essere un'app Android collegata in questo elenco il cui nome del pacchetto corrisponde alla nome del pacchetto in
AndroidManifest.xml
. In caso di mancata corrispondenza, crea una nuova ID client con il nome di pacchetto corretto e riprova ad accedere.
Controlla l'impronta digitale del certificato
Il certificato con cui stai firmando il gioco deve corrispondere a l'impronta digitale del certificato associata al tuo ID client. Per verificarlo, devi prima controlla l'impronta SHA1 del certificato nel seguente modo:
Individua il file del certificato e recupera la relativa impronta SHA1. Per ottenere Impronta SHA1, esegui questo comando:
keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
Prendi nota della sequenza di cifre esadecimali etichettate con
SHA1:
nella come output. ovvero l'impronta digitale del certificato.
A questo punto, verifica che lo strumento di creazione utilizzi questo certificato:
- Genera l'APK del tuo gioco dallo strumento di creazione e firmalo con il certificato. Copia l'APK generato in una directory temporanea.
Nella directory temporanea, esegui questo comando per decomprimere l'APK.
unzip YourGame.apk
Genera una chiave privata utilizzando un file di certificato RSA:
keytool -printcert -file META-INF/CERT.RSA
In alternativa, puoi generare la chiave privata utilizzando un file di certificato DSA:
keytool -printcert -file META-INF/CERT.DSA
Nota la sequenza di cifre esadecimali nella riga con l'etichetta
SHA1:
.Questa sequenza di cifre deve corrispondere all'impronta digitale del certificato passaggio precedente. Se c'è una mancata corrispondenza, lo strumento o il sistema di creazione non configurato per firmare l'applicazione con il tuo certificato. In questo caso, consulta la documentazione del tuo ambiente di build per determinare come configurare correttamente e riprova ad accedere.
Dopodiché, controlla se l'impronta digitale del certificato corrisponde all'impronta configurata nel tuo ID cliente. Per
- Apri Play Console e vai al tuo gioco.
- Nella pagina Dettagli del gioco, scorri fino in fondo e fai clic sul link progetto Google Cloud collegato.
- Seleziona il progetto.
- Nella barra laterale a sinistra, seleziona API e auth. Assicurati che Nell'elenco di API visualizzato, lo stato dell'API dei servizi per i giochi di Google Play è ON.
- Nella barra laterale a sinistra, seleziona App registrate.
- Espandi la sezione ID client OAuth 2.0 e prendi nota del certificato impronta digitale (SHA1).
Se l'impronta digitale non corrisponde a quella del certificato indicata nella passaggi precedenti, devi creare un nuovo ID client con il certificato corretto impronta. Devi creare il nuovo ID client nel in Play Console, non nel progetto Google Cloud.
Verificare che gli account di prova siano abilitati
Prima della pubblicazione di un gioco, l'account che lo ha creato nel Play Console deve essere abilitato anche come tester. Per verificarlo, è configurato correttamente:
- Apri Play Console e vai al tuo gioco.
- Apri la scheda Test.
- Verifica che l'account con cui stai tentando di accedere sia nell'elenco di tester.
Se l'account con cui stai tentando di accedere non è presente nell'elenco, aggiungilo all'elenco e attendi qualche minuto e riprova ad accedere.
Problemi relativi a ProGuard
Se utilizzi ProGuard e vengono visualizzati errori nell'APK offuscato, controlla il livello API target
su AndroidManifest.xml
. Assicurati di impostarlo su 17 o superiore.
Altre cause dei problemi di configurazione
Verifica altre cause comuni di errori:
- Se il gioco è stato pubblicato, controlla che anche le relative impostazioni siano pubblicate (è possibile pubblicare l'applicazione senza pubblicare le impostazioni dei giochi). Per farlo, vai a Google Play Console, apri l'app e controlla che la casella accanto al nome del gioco indichi per confermare la pubblicazione. Se indica che si trova in un altro stato, ad esempio "Pronto per la pubblicazione" o "Pronto per il test", fai clic sulla casella e seleziona Pubblica gioco.
- Se non riesci a pubblicare il gioco, verifica che esattamente uno degli ID client includa la dicitura Questa app è opzione preferita per le nuove installazioni.
Listener anonimi
Non utilizzare listener anonimi. I listener anonimi sono implementazioni di un'interfaccia listener definiti in linea, come illustrato di seguito.
ImageManager im = ...;
// Anonymous listener -- dangerous:
im.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri uri, Drawable drawable) {
// ...code...
}
}
Gli ascoltatori anonimi non sono affidabili perché l'SDK Play Giochi li mantiene come riferimenti deboli,
il che significa che potrebbero essere recuperati dal garbage collector prima
richiamato. Devi implementare il listener utilizzando un oggetto permanente
come
Activity
public class MyActivity extends Activity
implements ImageManager.OnImageLoadedListener {
private void loadOurImages() {
ImageManager im = ...;
im.loadImage(this);
}
@Override
public void onImageLoaded(Uri uri, Drawable drawable) {
// ...code...
}
}