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:
Cihazı, Android SDK'sının yüklü olduğu bir makineye bağlayın.
Bir terminal penceresi açın ve şu komutu çalıştırın:
adb shell setprop log.tag.Games VERBOSE
Oyununuzu cihazda çalıştırın ve yapmaya çalıştığınız sorunu yeniden oluşturun. hata ayıklamaya çalışın.
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:
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. Örnek:<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. 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.
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:
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. Bunu yapmak için:
- 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.
- 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 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:
- Play Console'u açıp oyununuza gidin.
- Test sekmesini açın.
- 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...
}
}