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:
AndroidManifest.xml
açın ve aşağıda gösterildiği gibi birmeta-data
etiketi içerdiğini doğrulayın:<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
@string/app_id
kaynağınızın tanımını bulun. Genellikle bir XML dosyasında tanımlanırres/xml
dizininde bulunur (örneğin,res/xml/strings.xml
veyares/xml/ids.xml
).@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:
AndroidManifest.xml
açın ve oyununuzun paket adının doğru olduğunu onaylayın. Paket name,manifest
etiketindekipackage
özelliğinin değeridir.- İ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. - 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:
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
SHA1:
çıktı. Bu, sertifikanızın parmak izidir.
Sonra, derleme aracınızın şu sertifikayı kullandığından emin olun:
- Derleme aracınızdan oyununuzun APK'sını oluşturun ve istediğiniz sertifikası. Oluşturulan APK'yı geçici bir dizine kopyalayın.
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
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
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:
- Google Play Console'u açıp oyununuza gidin.
- Oyun Ayrıntıları sayfasında aşağı gidip şu bağlantıyı tıklayın: bağlı Google Cloud Platform projesinden yararlanabilirsiniz.
- Google Cloud Platform'da projenizi seçin.
- 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.
- Soldaki kenar çubuğunda Kayıtlı uygulamalar'ı seçin.
- 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:
- Google Play Console'u açıp oyununuza gidin.
- Test sekmesini açın.
- 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...
}
}