Android oyunlarda Play Oyun Hizmetleri ile ilgili sorunları giderme

Bu sayfada, çalışırken karşılaşabileceğiniz sorunların nasıl giderileceği açıklanmaktadır. Google Play Games Hizmetleri ile Android oyunları geliştirmek.

Günlük kaydı

Oyununuzla ilgili sorunları gidermek için ayrıntılı günlük kaydını etkinleştirebilirsiniz adb shell komutunu kullanarak erişebilirsiniz. Ardından Google Play Games Hizmetleri, mesajları logcat kullanarak günlüğe kaydeder.

Günlük kaydını etkinleştir

Test cihazınızda günlük kaydını etkinleştirmek için:

  1. Cihazı, Android SDK'sının yüklü olduğu bir makineye bağlayın.

  2. Bir terminal penceresi açın ve şu komutu çalıştırın:

    adb shell setprop log.tag.Games VERBOSE
  3. Oyununuzu cihazda çalıştırın ve yapmaya çalıştığınız sorunu yeniden oluşturun. hata ayıklamaya çalışın.

  4. Günlükleri görüntüleme:

    adb logcat

Günlüğe kaydetmeyi devre dışı bırak

Cihazınızdaki Play Oyun Hizmetleri için ayrıntılı günlük kaydını devre dışı bırakmak ve orijinal günlük kaydı davranışına geri dönmek üzere aşağıdaki komutu çalıştırın:

adb shell setprop log.tag.Games INFO

Oturum açılamadı

Oyununuzda oyuncuların oturum açmasını sağlayamıyorsanız öncelikle Arkadaş Bitkiler projesinin müşteri kimliklerinizi oluşturun ve oyun hizmetlerini yapılandırın. Oturum açma hatalarıyla karşılaşmaya devam ediyorsanız doğru şekilde ayarlandığından emin olun.

Meta veri etiketlerinizi kontrol etme

AndroidManifest.xml, oyun meta veri etiketi içermelidir. Bunu doğrulamak için: meta veri etiketlerinizin doğru şekilde ayarlandığından emin olun:

  1. AndroidManifest.xml açın ve aşağıda gösterildiği gibi bir meta-data etiketi içerdiğini doğrulayın:

    <meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />
    
  2. @string/app_id kaynağınızın tanımını bulun. Genellikle bir XML dosyasında tanımlanır res/xml dizininde bulunur (örneğin, res/xml/strings.xml veya res/xml/ids.xml).

  3. @string/app_id kaynağının değerinin, uygulamanızın sayısal kimliğiyle eşleştiğini doğrulayın. Bu kaynağın değeri yalnızca rakamlardan oluşmalıdır. Örnek:

    <string name="app_id">123456789012</string>
    
ziyaret edin.

Paketinizin adını kontrol edin

Oyununuzun paket adı, istemci kimliğinizdeki paket adıyla eşleşmelidir. Paket adını doğrulamak için:

  1. AndroidManifest.xml açın ve oyununuzun paket adının doğru olduğunu onaylayın. Paket name, manifest etiketindeki package özelliğinin değeridir.

  2. İstemci kimliğinizi oluştururken sağladığınız paket adını doğrulayın. Doğrulamak için Google Play Console'da paket adını öğrenmek için Play Console'a gidin ve oyununuzla ilgili girişi tıklayın.

  3. Bağlı Uygulamalar sekmesine gidin ve istemci kimliklerinin listesini inceleyin. Orada bu listede, paket adı paket adı (AndroidManifest.xml) ekleyin. Uyuşmazlık varsa yeni bir kod oluşturun. istemci kimliğini doğru paket adıyla değiştirin ve tekrar oturum açmayı deneyin.

Sertifika parmak izini kontrol etme

Oyununuzu imzaladığınız sertifika sertifika dijital parmak izini etkinleştirin. Bunu doğrulamak için önce sertifikanızın SHA1 parmak izini aşağıdaki şekilde kontrol edin:

  1. Sertifika dosyanızı bulun ve SHA1 parmak izini alın. Bunu edinmek için SHA1 parmak izi yoksa şu komutu çalıştırın:

    keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
    
  2. SHA1: çıktı. Bu, sertifikanızın parmak izidir.

ziyaret edin.

Sonra, derleme aracınızın şu sertifikayı kullandığından emin olun:

  1. Derleme aracınızdan oyununuzun APK'sını oluşturun ve istediğiniz sertifikası. Oluşturulan APK'yı geçici bir dizine kopyalayın.
  2. Geçici dizinde, APK'nızın sıkıştırılmış dosyasını açmak için aşağıdaki komutu çalıştırın.

    unzip YourGame.apk
    
  3. RSA sertifika dosyası kullanarak gizli anahtar oluşturun:

    keytool -printcert -file META-INF/CERT.RSA
    

    Alternatif olarak, özel anahtarı bir DSA sertifika dosyası kullanarak da oluşturabilirsiniz:

    keytool -printcert -file META-INF/CERT.DSA
    
  4. SHA1: etiketli satırdaki onaltılık basamak dizisine dikkat edin.

    Bu basamak dizisi, önceki adım. Uyuşmazlık varsa derleme aracınız veya sisteminiz uygulamanızı sertifikanızla imzalayacak şekilde yapılandırılmıştır. Böyle durumlarda nasıl yapılandıracağınızı belirlemek için derleme ortamınızın dokümanlarına bakın doğru şekilde onaylayın ve tekrar oturum açmayı deneyin.

Daha sonra, sertifika parmak izinin yapılandırılan parmak iziyle eşleşip eşleşmediğini kontrol edin bilgileri girin. Bunu yapmak için:

  1. Play Console'u açıp oyununuza gidin.
  2. Oyun Ayrıntıları sayfasında aşağı gidip şu bağlantıyı tıklayın: bağlı Google Cloud Platform projesinden yararlanabilirsiniz.
  3. Projenizi seçin.
  4. Soldaki kenar çubuğundan API'ler ve auth. Lütfen Görüntülenen API listesinde Google Play Games hizmetleri API durumu AÇIK'tır.
  5. Soldaki kenar çubuğunda Kayıtlı uygulamalar'ı seçin.
  6. OAuth 2.0 İstemci Kimliği bölümünü genişletin ve sertifikayı not edin. dijital parmak izi (SHA1) ekleyin.

Bu parmak izi, Önceki adımlarda, doğru sertifika ile yeni bir istemci kimliği oluşturmanız gerekir parmak izi. Yeni istemci kimliğini Play Console (Google Cloud Platform projesinde değil).

Test hesaplarının etkin olup olmadığını kontrol etme

Bir oyun yayınlanmadan önce, Play Console'un da test kullanıcısı olarak etkinleştirilmesi gerekir. Bunu kontrol etmek için yapılandırmanın doğru olduğundan emin olun:

  1. Play Console'u açıp oyununuza gidin.
  2. Test sekmesini açın.
  3. Oturum açmaya çalıştığınız hesabın test kullanıcıları.

Oturum açmaya çalıştığınız hesap listede yoksa hesabı listeye ekleyin ve birkaç dakika bekleyin ve tekrar oturum açmayı deneyin.

ProGuard sorunları

ProGuard kullanıyorsanız ve kodu karartılmış APK'da hata görüyorsanız hedef API düzeyini kontrol edin AndroidManifest.xml cihazınızda. Bu değeri 17 veya üzeri bir değere ayarladığınızdan emin olun.

Kurulum sorunlarının diğer nedenleri

Hataların sık karşılaşılan diğer nedenlerini kontrol edin:

  • Oyununuz yayınlandıysa oyun ayarlarının da yayınlandığından emin olun (yayınlanmış oyun ayarlarını yayınlamadan uygulamayı yayınlamalısınız). Bunun için şuraya gidin: uygulamanıza gidin ve oyun adının yanındaki kutuda emin olmanız gerekir. Cihazın başka bir durumda olduğunu belirtirse (ör. "Yayınlanmaya Hazır") veya "Test Etmeye Hazır", kutuyu tıklayın ve Oyunu Yayınla'yı seçin.
  • Oyununuzu yayınlayamıyorsanız istemci kimliklerinden tam olarak birinin Bu uygulama yeni yüklemeler için tercih edilir seçeneğinin etkinleştirilmesi gerekir.

Anonim dinleyiciler

Anonim işleyicileri kullanmayın. Anonim işleyiciler, işleyici arayüzünün uygulamalarıdır satır içi olarak tanımlanan özellikleri kullanın.

    ImageManager im = ...;

    // Anonymous listener -- dangerous:
    im.loadImage(new ImageManager.OnImageLoadedListener() {
        @Override
        public void onImageLoaded(Uri uri, Drawable drawable) {
            // ...code...
        }
    }

Play Games SDK'sı bunları zayıf referans olarak tuttuğundan anonim dinleyiciler güvenilir değildir. Bu da çöp toplayıcı tarafından toplanmadan önce toplanacakları anlamına gelir. çağrılır. Bunun yerine, işleyiciyi kalıcı nesne kullanarak uygulamalısınız. örneğin 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...
        }
    }