Android Oyununuzdaki Sorunları Giderme

Bu sayfada, Play Games SDK'sını kullanarak Android oyunları geliştirirken karşılaşabileceğiniz sorunların nasıl giderileceği açıklanmaktadır.

Oturum açılamadı

Oyuncuların oyununuzda oturum açmasını sağlayamıyorsanız öncelikle istemci kimliklerinizi oluşturma ve oyun hizmetlerini yapılandırma talimatlarını uyguladığınızdan emin olun. Oturum açma sorunu yaşamaya devam ediyorsanız oyunlarınızın doğru kurulduğundan emin olmak için aşağıdaki öğeleri kontrol edin.

Meta veri etiketlerinizi kontrol etme

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

  1. AndroidManifest.xml dosyanızı 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 rakam içermelidir. Örneğin:

    <string name="app_id">123456789012</string>
    

Paketinizin adını kontrol edin

Oyununuzun paket adı, müşteri 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. Müşteri kimliğinizi oluştururken belirttiğiniz paket adını doğrulayın. Google Play Console'da paket adını doğrulamak için Google Play Console'a gidin ve oyununuza karşılık gelen girişi tıklayın. Bağlı Uygulamalar sekmesine gidin ve istemci kimlikleri listesini inceleyin. Bu listede, paket adı AndroidManifest.xml'ünüzdeki paket adıyla eşleşen bir Android bağlı uygulaması olmalıdır.
  3. Eşleşme yoksa doğru paket adıyla yeni bir müşteri kimliği oluşturun ve tekrar oturum açmayı deneyin.

Sertifika parmak izini kontrol etme

Oyununuzu imzaladığınız sertifika, sertifikanın dijital parmak iziyle eşleşmelidir müşteri kimliğinizle ilişkilendirilir. Bunu doğrulamak için önce sertifikanızın SHA1 parmak izini kontrol edin:

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

    keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
    
  2. Çıktıda SHA1: olarak etiketlenen onaltılık basamak dizisini not edin. Bu, sertifikanızın parmak izidir.

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 sertifikayla imzalayın. 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, DSA sertifika dosyası kullanarak özel anahtarı da oluşturabilirsiniz:

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

    Bu basamak dizisi, önceki adımdaki sertifika parmak izinizle eşleşmelidir. Eşleşme yoksa derleme aracınız veya sisteminiz, uygulamanızı sertifikanızla imzalayacak şekilde yapılandırılmamış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.

Ardından, sertifika parmak izinin istemci kimliğinizde yapılandırılan parmak iziyle eşleşip eşleşmediğini kontrol edin. Bunun için:

  1. Google Play Console'u açıp oyununuza gidin.
  2. Oyun Ayrıntıları sayfasında aşağı kaydırın ve bağlı Google Cloud Platform projesinin bağlantısını tıklayın.
  3. Google Cloud Platform'da projenizi seçin.
  4. Soldaki kenar çubuğundan API'ler ve auth. Gösterilen API listesinde Google Play Games Services API durumunun AÇIK olduğundan emin olun.
  5. Soldaki kenar çubuğunda Kayıtlı uygulamalar'ı seçin.
  6. OAuth 2.0 İstemci Kimliği bölümünü genişletin ve sertifika parmak izini (SHA1) not edin.

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 Google Cloud Platform'da değil, Google Play Console'da oluşturmanız gerekir.

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

Bir oyun yayınlanmadan önce, Google Play Console'da oyunu oluşturan hesap da bir test kullanıcısı olarak etkinleştirildi. Bunun doğru şekilde yapılandırılıp yapılandırılmadığını kontrol etmek için:

  1. Google 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ı listesinde olup olmadığını kontrol edin.

Oturum açmaya çalıştığınız hesap listede yoksa listeye ekleyin, 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 diğer yaygın nedenlerini kontrol edin:

  • Oyununuz yayınlandıysa oyun ayarlarının da yayınlandığından emin olun (uygulamayı oyun ayarlarını yayınlamadan yayınlamak mümkündür). Bunu yapmak için 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 birinde Bu uygulama yeni yüklemeler için tercih edilir seçeneğinin etkin olup olmadığını kontrol edin.

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 tanımlar.

    ImageManager im = ...;

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

Play Games SDK'sı anonim dinleyicileri zayıf referanslar olarak koruduğu için bu dinleyiciler güvenilir değildir. Bu, çağrılmadan önce çöp toplayıcı tarafından geri alınabilecekleri anlamına gelir. 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...
        }
    }