Auf dieser Seite wird beschrieben, wie du Probleme beheben kannst, die bei der Entwicklung von Android auftreten können. mit dem Play Spiele SDK.
Anmelden nicht möglich
Wenn Sie keine Spieler in Ihrem Spiel anmelden können, prüfen Sie zuerst, ob Sie die Anleitung zum Erstellen Ihrer Client-IDs und Spieldienste konfigurieren Wenn Sie sich weiterhin anmelden Fehler beheben, prüfen Sie die folgenden Punkte, um sicherzugehen, dass Ihr Spiel richtig eingerichtet ist.
Metadaten-Tags prüfen
AndroidManifest.xml
muss ein Metadaten-Tag für Spiele enthalten. Um zu prüfen, ob
müssen Ihre Metadaten-Tags richtig eingerichtet sein:
Öffnen Sie die
AndroidManifest.xml
und prüfen Sie, ob sie wie unten gezeigt einmeta-data
-Tag enthält:<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
Suchen Sie die Definition Ihrer
@string/app_id
-Ressource. Sie ist normalerweise in einer XML-Datei definiert. im Verzeichnisres/xml
, z. B.res/xml/strings.xml
oderres/xml/ids.xml
.Prüfen Sie, ob der Wert der
@string/app_id
-Ressource mit der numerischen ID Ihrer Anwendung übereinstimmt. Der Wert dieser Ressource darf nur Ziffern enthalten. Beispiel:<string name="app_id">123456789012</string>
Paketnamen prüfen
Der Paketname Ihres Spiels muss mit dem Paketnamen in Ihrer Client-ID übereinstimmen. So überprüfen Sie den Paketnamen:
- Öffne dein
AndroidManifest.xml
und prüfe, ob der Paketname deines Spiels korrekt ist. Das Paket name ist der Wert des Attributspackage
immanifest
-Tag. - Überprüfe den Paketnamen, den du beim Erstellen der Client-ID angegeben hast. So überprüfen Sie den Paketnamen in
die Google Play Console öffnen, die Google Play Console aufrufen und auf den Eintrag für dein Spiel klicken.
Rufen Sie den Tab Verknüpfte Apps auf und überprüfen Sie die Liste der Client-IDs. Ein Android-Gerät sollte verknüpft sein.
App in dieser Liste, deren Paketname mit dem Paketnamen in deinem
AndroidManifest.xml
übereinstimmt. - Wenn es eine Abweichung gibt, erstellen Sie eine neue Client-ID mit dem richtigen Paketnamen und versuchen Sie, sich anzumelden noch einmal.
Zertifikatfingerabdruck prüfen
Das Zertifikat, mit dem du dein Spiel signierst, sollte mit dem Zertifikat-Fingerabdruck übereinstimmen. die mit Ihrer Client-ID verknüpft sind. Dazu prüfen Sie zuerst den SHA1-Fingerabdruck Ihres Zertifikats:
Suchen Sie Ihre Zertifikatsdatei und rufen Sie den SHA1-Fingerabdruck ab. Um die SHA1-Fingerabdruck zu erhalten, führen Sie den folgenden Befehl aus:
keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
Achten Sie auf die Folge der Hexadezimalziffern mit der Bezeichnung
SHA1:
in der . Das ist der Fingerabdruck Ihres Zertifikats.
Prüfen Sie als Nächstes, ob Ihr Build-Tool dieses Zertifikat verwendet:
- Generieren Sie das APK Ihres Spiels aus Ihrem Build-Tool und signieren Sie es mit dem gewünschten Zertifikat. Kopieren Sie die generierte APK-Datei in ein temporäres Verzeichnis.
Führen Sie im temporären Verzeichnis den folgenden Befehl aus, um Ihr APK zu entpacken.
unzip YourGame.apk
Generieren Sie einen privaten Schlüssel mithilfe einer RSA-Zertifikatsdatei:
keytool -printcert -file META-INF/CERT.RSA
Alternativ können Sie den privaten Schlüssel mithilfe einer DSA-Zertifikatsdatei generieren:
keytool -printcert -file META-INF/CERT.DSA
Achten Sie auf die Folge von Hexadezimalziffern in der Zeile
SHA1:
.Diese Ziffernfolge sollte mit dem Fingerabdruck Ihres Zertifikats aus der vorherigen Schritt. Wenn es eine Diskrepanz gibt, ist Ihr Build-Tool oder System nicht konfiguriert, um Ihre Anwendung mit Ihrem Zertifikat zu signieren. In diesem Fall finden Sie in der Dokumentation Ihrer Build-Umgebung. und versuchen Sie noch einmal, sich anzumelden.
Prüfen Sie als Nächstes, ob der Zertifikatfingerabdruck mit dem konfigurierten Fingerabdruck übereinstimmt in Ihrer Client-ID ein. Das geht so:
- Öffnen Sie die Google Play Console und rufen Sie Ihr Spiel auf.
- Scrollen Sie auf der Seite Infos zum Spiel nach unten und klicken Sie auf den Link zum verknüpftes Google Cloud Platform-Projekt.
- Wählen Sie in der Google Cloud Platform Ihr Projekt aus.
- Wählen Sie in der linken Seitenleiste APIs und auth. Achten Sie darauf, dass der Der API-Status der Google Play-Spieldienste ist in der angezeigten Liste der APIs EIN.
- Wählen Sie links Registrierte Apps aus.
- Maximieren Sie den Bereich „OAuth 2.0-Client-ID“ und notieren Sie sich das Zertifikat. Fingerabdruck (SHA1).
Wenn dieser Fingerabdruck nicht mit dem Fingerabdruck Ihres Zertifikats aus der müssen Sie eine neue Client-ID mit dem richtigen Zertifikat erstellen, Fingerabdruck. Du musst die neue Client-ID in der Google Play Console erstellen, nicht in der Google Cloud Platform.
Aktivierung von Testkonten prüfen
Bevor ein Spiel veröffentlicht wird, muss das Konto, über das das Spiel in der Google Play Console erstellt wurde, auch als Tester aktiviert sind. So überprüfen Sie, ob dies richtig konfiguriert ist:
- Öffnen Sie die Google Play Console und rufen Sie Ihr Spiel auf.
- Öffnen Sie den Tab Test.
- Prüfen Sie, ob sich das Konto, mit dem Sie sich anmelden möchten, in der Liste der Tester befindet.
Wenn das Konto, mit dem du dich anmelden möchtest, nicht aufgeführt ist, füge es der Liste hinzu und warte ein paar Minuten. und versuchen Sie noch einmal, sich anzumelden.
ProGuard-Probleme
Wenn Sie Proguard verwenden und Fehler im verschleierten APK angezeigt werden, prüfen Sie das Ziel-API-Level
auf deinem AndroidManifest.xml
. Stelle sicher, dass die Einstellung mindestens 17 beträgt.
Andere Ursachen für Probleme bei der Einrichtung
Suchen Sie nach anderen häufigen Fehlerursachen:
- Wenn Ihr Spiel veröffentlicht ist, achten Sie darauf, dass auch die Spieleinstellungen veröffentlicht sind. die App veröffentlichen, ohne die Spieleinstellungen zu veröffentlichen. Wechseln Sie dazu zur Google Play Console und gehen Sie zu Ihrer App. Klicken Sie auf das Kästchen neben dem Namen des Spiels, dass es veröffentlicht wird. Wenn ein anderer Status angegeben ist, z. B. „Bereit zur Veröffentlichung“ oder Klicken Sie auf das Feld „Ready to Test“ (Bereit zum Testen) und wählen Sie Publish Game (Spiel veröffentlichen) aus.
- Wenn Sie Ihr Spiel nicht veröffentlichen können, achten Sie darauf, dass genau eine der Client-IDs den Vermerk Diese App ist für Neuinstallationen bevorzugt aktiviert ist.
Anonyme Zuhörer
Verwenden Sie keine anonymen Listener. Anonyme Listener sind Implementierungen einer Listener-Schnittstelle. die wie unten dargestellt inline definiert sind.
ImageManager im = ...;
// Anonymous listener -- dangerous:
im.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri uri, Drawable drawable) {
// ...code...
}
}
Anonyme Zuhörer sind unzuverlässig,
weil das Play Spiele SDK sie als schwache Referenzen
Das bedeutet, dass sie vom Garbage Collector zurückgefordert werden können, bevor sie
aufgerufen wird. Stattdessen sollten Sie den Listener mithilfe eines persistenten Objekts
wie 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...
}
}