/ / Jak korzystać z emulatorów innych niż Nexus 5 w zależności od usług Google Play w mojej aplikacji Google Maps - Android, Google-Maps, Android-Emulator, Google-Play-Services

Jak korzystać z emulatorów innych niż Nexus 5 w zależności od Usług Google Play w mojej aplikacji Mapy Google - Android, mapy google, emulator Androida, usługi Google Play

Moje podejście do testowania polega na użyciu wielu emulatorów różnych konfiguracji (marek / modeli / wymiarów / apis / celów).

Niedawno zaktualizowałem do Androida Studio 3.1.

Moja aplikacja działa od 3 lat i używa Google Maps v2 i chciałbym ją nadal utrzymywać (Google się śmieje).

Każdy emulator (inny niż Nexus 5), który mamteraz nie działa, ponieważ mówi, że Usługi Google Play wymagają aktualizacji i wydaje się, że nie ma ścieżki do ich rozwiązania. Emulatory Nexusa 5 nie mają błędu, ale wyświetlają puste tło mapy.

Kiedy próbuję usunąć jakąkolwiek zależność od usług Google Play, staje się to śliskim nachyleniem (głównie zastępując usługę lokalizacji z fuzją).

Pytanie: Jeśli mam zależność od usług Google Play (mojamoże pierwszy błąd?) Czy w mojej aplikacji Google Maps v2 ograniczam się do emulatorów Nexusa 5 (które wydają się mieć własne problemy)? Jeśli nie, to jak zaktualizować inne dobre emulatory (Pixel, inny Nexus, Galaxy ...)?

Widzę inne pytania i nadal się na nich gapię, ale chciałbym zrozumieć, jaka jest praktyczna ścieżka przyszłej konserwacji - usuwanie zależności, uaktualnianie czegoś ...

Na przykład:

Błąd niezwiązany z Nexusem 5 to:

(aplikacja) nie uruchomi się, chyba że zaktualizujesz usługi Google Play

(Duży tłuszcz Wyświetlany jest również przycisk „Aktualizuj”, który zgłasza wyjątek - prawdopodobnie dlatego, że nie jest zainstalowany na emulatorze).

Odpowiedni błąd w Nexusie 5 to:

E / Google Maps Android API: Google Maps Android API v2 obsługuje tylko urządzenia z OpenGL ES 2.0 i nowszymi

(Którego nie mogę włączyć w menedżerze AVD dla emulatorów Nexusa 5).

Oto typowe szaleństwo stopniowe - starałem się podnieść usługi gier do 11.8.0 i ta niefortunna magia się wydarzyła (z aplikacji gradlew: zależności):

+ --- com.google.android.gms: play-services-maps: 11.8,0 -> 12.0.1 | + --- com.google.android.gms: play-services-base: 12.0.1 | | + --- com.google.android.gms: play-services-piwnica: 12.0.1 | | |
+ --- com.android.support:support-v4:26.1.0 () | | | --- com.google.android.gms: play-services-basement-licence: 12.0.1 | |
+ --- com.google.android.gms: play-services-tasks: 12.0.1 | | | + --- com.google.android.gms: play-services-piwnica: 12.0.1 (
) | | | --- com.google.android.gms: play-services-tasks-licence: 12.0.1 | | --- com.google.android.gms: play-services-base-licence: 12.0.1 |
+ --- com.google.android.gms: play-services-piwnica: 12.0.1 (*) | --- com.google.android.gms: play-services-maps-licence: 12.0.1

Uroczystość

@xiaomi poprawnie przypisało problem usługom (lub konkretnie mapom usług) 12.0.1, więc po kilku bitwach stopniowych podbiłem wszystkie gry- * do 11.8.0 i emulatory inne niż Nexus działają.

Zdobyta wiedza:

  • Nigdy nie ślepo postępuj zgodnie ze wskazówkami ostrzegającymi o stopniach, aby aktualizować wersje!
  • „gradlew app: dependencies” to twój przyjaciel.

Epilog

Pomyśl wiele razy zanim to zrobisz:

wprowadź opis obrazu tutaj

Odpowiedzi:

1 dla odpowiedzi № 1

Często występuje opóźnienie między najnowszą usługą Google Play, której możemy użyć, a tą, którą może obsłużyć najnowszy emulator.

Rozwiązaniem, gdy aplikacja na emulatorze prosi o aktualizację, jest użycie niższej wersji usługi Google Play.

Jeśli mapa wygląda na pustą, oznacza to zwykle problem z rejestracja klucza