Fehlerbehebung in Ihrem Android-Spiel

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:

  1. Öffnen Sie die AndroidManifest.xml und prüfen Sie, ob sie wie unten gezeigt ein meta-data-Tag enthält:

    <meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />
    
  2. Suchen Sie die Definition Ihrer @string/app_id-Ressource. Sie ist normalerweise in einer XML-Datei definiert. im Verzeichnis res/xml, z. B. res/xml/strings.xml oder res/xml/ids.xml.

  3. 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:

  1. Öffne dein AndroidManifest.xml und prüfe, ob der Paketname deines Spiels korrekt ist. Das Paket name ist der Wert des Attributs package im manifest-Tag.
  2. Ü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.
  3. 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:

  1. 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
    
  2. 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:

  1. 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.
  2. Führen Sie im temporären Verzeichnis den folgenden Befehl aus, um Ihr APK zu entpacken.

    unzip YourGame.apk
    
  3. Generieren Sie einen privaten Schlüssel mit 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
    
  4. 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:

  1. Öffnen Sie die Google Play Console und rufen Sie Ihr Spiel auf.
  2. Scrollen Sie auf der Seite Infos zum Spiel nach unten und klicken Sie auf den Link zum verknüpftes Google Cloud Platform-Projekt.
  3. Wählen Sie in der Google Cloud Platform Ihr Projekt aus.
  4. 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.
  5. Wählen Sie links Registrierte Apps aus.
  6. 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:

  1. Öffnen Sie die Google Play Console und rufen Sie Ihr Spiel auf.
  2. Öffnen Sie den Tab Test.
  3. 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...
        }
    }