Android Oyununuzdaki Sorunları Giderme

Bu sayfada, Android'i geliştirirken karşılaşabileceğiniz sorunların nasıl giderileceği açıklanmaktadır. oyunlarında kullanılabilir.

Oturum açılamadı

Oyuncuların oyununuzda oturum açmasını sağlayamıyorsanız öncelikle müşteri kimliklerinizi oluşturma talimatlarını ve oyun hizmetlerini yapılandırın. 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 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. Örneğin:

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

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. Paket adını Google Play Console'a gidip oyununuzla ilgili girişi tıklayın. Bağlı Uygulamalar sekmesine gidin ve istemci kimliklerinin listesini inceleyin. Bağlantılı bir Android cihaz olmalı Bu listede, paket adı AndroidManifest.xml cihazınızdaki paket adıyla eşleşen uygulama.
  3. Uyuşmazlık varsa doğru paket adıyla yeni bir istemci kimliği oluşturun ve oturum açmayı deneyin. tekrar.

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

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. Bunun için:

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

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 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). 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 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...
        }
    }