Na tej stronie opisujemy sposoby rozwiązywania problemów, które mogą wystąpić podczas tworzenia gier na Androida przy użyciu usług gier Google Play;
Logowanie
Aby rozwiązać problemy z grą, możesz włączyć szczegółowe zapisywanie w dzienniku
na urządzeniu za pomocą polecenia adb shell
. Możesz wtedy wyświetlić
Usługi gier Google Play rejestrują komunikaty za pomocą narzędzia logcat.
Włącz rejestrowanie
Aby włączyć logowanie na urządzeniu testowym:
Połącz urządzenie z komputerem z zainstalowanym pakietem Android SDK.
Otwórz terminal i uruchom to polecenie:
adb shell setprop log.tag.Games VERBOSE
Uruchom grę na urządzeniu i odtwórz problem, który próbujesz rozwiązać. debugowanie.
Wyświetl logi:
adb logcat
Wyłącz logowanie
Aby wyłączyć logowanie szczegółowe w usługach gier Play na urządzeniu oraz przywróć pierwotne zachowanie logowania, uruchom to polecenie:
adb shell setprop log.tag.Games INFO
Nie można się zalogować
Jeśli nie możesz zalogować graczy do gry, najpierw upewnij się, postępuje zgodnie z instrukcjami, utworzyć identyfikatory klientów oraz skonfigurować usługi gier. Jeśli nadal występują błędy logowania, sprawdź poniższe kwestie, by upewnić się, czy gra jest poprawnie skonfigurowana.
Sprawdź tagi metadanych
AndroidManifest.xml
musi zawierać tag metadanych gier. Aby to sprawdzić
Sprawdź, czy tagi metadanych są skonfigurowane prawidłowo.
Otwórz
AndroidManifest.xml
i sprawdź, czy zawiera tagmeta-data
, jak pokazano poniżej:<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
Znajdź definicję zasobu
@string/app_id
. Jest ono zazwyczaj zdefiniowane w pliku XML. znajduje się w katalogures/xml
, na przykładres/xml/strings.xml
lubres/xml/ids.xml
.Sprawdź, czy wartość zasobu
@string/app_id
jest zgodna z liczbowym identyfikatorem aplikacji. Wartość tego zasobu powinna zawierać tylko cyfry. Na przykład:<string name="app_id">123456789012</string>
Sprawdzanie nazwy pakietu
Nazwa pakietu gry musi być taka sama jak nazwa pakietu w identyfikatorze klienta. Aby sprawdzić nazwę pakietu:
Otwórz
AndroidManifest.xml
i sprawdź, czy nazwa pakietu gry jest poprawna. Przesyłka nazwa to wartość atrybutupackage
w tagumanifest
.Sprawdź nazwę pakietu podaną przy tworzeniu identyfikatora klienta. Aby zweryfikować nazwę pakietu w Konsoli Google Play, otwórz w Konsoli Play i kliknij wpis odpowiadający Twojej grze.
Otwórz kartę Połączone aplikacje i sprawdź listę identyfikatorów klientów. OK powinna być na tej liście powiązana z aplikacją na Androida, której nazwa pakietu odpowiada nazwa pakietu na stronie
AndroidManifest.xml
. Jeśli okaże się, że dane nie są zgodne, utwórz nowe z prawidłową nazwą pakietu i spróbuj zalogować się ponownie.
Sprawdź odcisk cyfrowy certyfikatu
Certyfikat, którym podpisujesz grę, powinien być zgodny z certyfikatem odcisk cyfrowy certyfikatu powiązany z identyfikatorem klienta. Aby to sprawdzić, najpierw sprawdź odcisk cyfrowy SHA1 swojego certyfikatu w ten sposób:
Znajdź plik certyfikatu i uzyskaj jego odcisk cyfrowy SHA1. Aby uzyskać Odcisk cyfrowy SHA1, uruchom to polecenie:
keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
Zwróć uwagę na sekwencję cyfr szesnastkowych oznaczonych etykietą
SHA1:
w dane wyjściowe. To odcisk cyfrowy Twojego certyfikatu.
Następnie sprawdź, czy Twoje narzędzie do kompilacji używa tego certyfikatu:
- Wygeneruj plik APK gry z narzędzia do kompilacji i podpisz go wybranym certyfikat. Skopiuj wygenerowany plik APK do katalogu tymczasowego.
W katalogu tymczasowym uruchom następujące polecenie, aby rozpakować plik APK.
unzip YourGame.apk
Wygeneruj klucz prywatny przy użyciu pliku certyfikatu RSA:
keytool -printcert -file META-INF/CERT.RSA
Klucz prywatny możesz też wygenerować za pomocą pliku certyfikatu DSA:
keytool -printcert -file META-INF/CERT.DSA
Zwróć uwagę na sekwencję cyfr szesnastkowych w wierszu z etykietą
SHA1:
.Ta sekwencja cyfr powinna pasować do odcisku cyfrowego certyfikatu z poprzedniego kroku. Jeśli wystąpi niezgodność, narzędzie do tworzenia kompilacji lub system skonfigurowany do podpisywania aplikacji certyfikatem. W tym przypadku zapoznaj się z dokumentacją środowiska kompilacji, aby określić, jak go skonfigurować to i spróbuj zalogować się jeszcze raz.
Następnie sprawdź, czy odcisk cyfrowy certyfikatu pasuje do skonfigurowanego odcisku cyfrowego w identyfikatorze klienta. Aby to zrobić:
- Otwórz Konsolę Play i przejdź do swojej gry.
- Na stronie Szczegóły gry przewiń w dół i kliknij link. połączonego projektu Google Cloud Platform.
- Wybierz projekt.
- Na pasku bocznym po lewej stronie wybierz Interfejsy API auth Upewnij się, że Na wyświetlanej liście interfejsów API usług Google Play Games Services stan interfejsu API usług gier Google Play to WŁĄCZONE.
- Na pasku bocznym po lewej stronie kliknij Zarejestrowane aplikacje.
- Rozwiń sekcję Identyfikator klienta OAuth 2.0 i zanotuj certyfikat odcisk palca (SHA1).
Jeśli odcisk cyfrowy nie jest zgodny z odciskiem cyfrowym certyfikatu z poprzednich kroków, musisz utworzyć nowy identyfikator klienta z prawidłowym certyfikatem odcisk palca. Musisz utworzyć nowy identyfikator klienta w w Konsoli Play, a nie w projekcie Google Cloud Platform.
Sprawdź, czy konta testowe są włączone
Przed opublikowaniem gry konto, na którym powstała gra w Konsola Play też musi być włączona jako tester. Aby to sprawdzić Jest poprawnie skonfigurowany:
- Otwórz Konsolę Play i przejdź do swojej gry.
- Otwórz kartę Testowanie.
- Sprawdź, czy konto, na które próbujesz się zalogować, znajduje się na liście dla testerów.
Jeśli konta, za pomocą którego próbujesz się zalogować, nie ma na liście, dodaj je do listy i zaczekaj kilka minut. i ponownie spróbuj się zalogować.
Problemy z ProGuard
Jeśli korzystasz z Proguard i w zaciemnionym pakiecie APK widzisz błędy, sprawdź docelowy poziom interfejsu API
na urządzeniu AndroidManifest.xml
. Pamiętaj, by ustawić go na 17 lub więcej.
Inne przyczyny problemów z konfiguracją
Sprawdź, czy nie występują inne częste przyczyny błędów:
- Jeśli gra została opublikowana, sprawdź, czy są też opublikowane jej ustawienia (możesz też opublikować aplikację bez publikowania ustawień gier). W tym celu otwórz Otwórz Konsolę Google Play i przejdź do aplikacji, a następnie zaznacz, że pole obok jej nazwy wskazuje opublikowania. Jeśli wskazuje, że jest w innym stanie, takim jak „Gotowy do publikacji”. lub „Ready to Test” (Gotowa do testowania), kliknij pole, a następnie Opublikuj grę.
- Jeśli nie możesz opublikować gry, sprawdź, czy tylko jeden z identyfikatorów klienta ma pole Ta aplikacja jest preferowane w przypadku nowych instalacji.
Anonimowi słuchacze
Nie używaj anonimowych detektorów. Anonimowi detektory to implementacje interfejsu detektora zdefiniowanych w tekście, jak widać na ilustracji poniżej.
ImageManager im = ...;
// Anonymous listener -- dangerous:
im.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri uri, Drawable drawable) {
// ...code...
}
}
Anonimowi detektory są zawodne, ponieważ pakiet SDK Gier Play przechowuje je jako słabe odniesienia.
co oznacza, że mogą zostać odzyskane przez śmieci, zanim zostaną
. Zamiast tego warto wdrożyć detektor za pomocą obiektu trwałego
takich jak
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...
}
}