Używam Map Google w mojej aplikacji na Androida. Utworzyłem klucz i dodałem niezbędne uprawnienia w pliku manifestu. Ale wkrótce uruchamiam aplikację, w debugerze pojawia się ten komunikat:
Nie udało się zainicjować usługi GoogleService, stan: 10, Brak oczekiwanego zasobu: „R.string.google_app_id” do inicjowania usług Google. Możliwe przyczyny to brak wtyczki google-services.json lub com.google.gms.google-services gradle.
Nie wiem, co się stało. Mapa działa dobrze i mogę z niej korzystać bez żadnych problemów. Mój plik gradle zawiera ten wpis:
kompiluj „com.google.android.gms: play-services: 8.4.0”
Na co on narzeka i jak to złagodzić?
Odpowiedzi:
Musisz umieścić plik konfiguracyjny (
google-services.json
) wygenerowany przez developer.google.com , jak wspomniano w drugim kroku oficjalnej dokumentacji tutajProces jest prosty
Następnie po wybraniu żądanych usług (w tym przypadku usługi mapowej) można wygenerować plik konfiguracyjny.
Następnie, jak podano w kroku 3 oficjalnych dokumentów tutaj
PS: W przypadku osób, które odrzucają tę odpowiedź, zostaw komentarz z informacją, dlaczego nie głosujesz.
źródło
[From Product Manager @ Google]
Możesz rozwiązać ten problem, pobierając i kopiując
google-services.json
plik dla swojej aplikacji na Androida, wykonując poniższe czynności:Continue to Choose and configure services
.Continue to Generate Configuration files
.google-services.json
i skopiuj plik do kataloguapp/
ormobile/
module w projekcie systemu Android.Jeśli wcześniej zaimportowałeś projekt Google do Firebase, możesz pobrać zaktualizowany plik google-services.json z konsoli Firebase w Ustawieniach projektu.
NIE KOPIUJ PROJECT_NUMBER zgodnie z sugestią jednej z innych odpowiedzi, ponieważ google_app_id odnosi się do Twojej aplikacji w projekcie, a nie do samego projektu.
źródło
W moim przypadku przyczyną tego błędu było to, że wtyczka usług Google dla Gradle i biblioteka usług Play były wersjami niekompatybilnymi. Instrukcje dotyczące kompatybilnych wersji:
1) Dodaj zależność do build.gradle na poziomie projektu:
2) Dodaj wtyczkę do build.gradle na poziomie aplikacji:
3) Jeśli używasz Android Studio, jest to ciąg znaków, który należy dodać do sekcji zależności w pliku build.gradle aplikacji:
Źródło: https://developers.google.com/cloud-messaging/android/client
źródło
com.google.android.gms:play-services-maps:8.4.0
Spotkałem ten sam problem i rozwiązałem go zgodnie z oficjalnym rozwiązaniem .
Oto kroki:
pobierz plik konfiguracyjny
google-services.json
z tego linku .Skopiuj
google-services.json
właśnie pobrany plik do katalogu app / lub mobile / swojego projektu Android Studio.Dodaj zależność do build.gradle na poziomie projektu:
Dodaj wtyczkę do build.gradle na poziomie aplikacji:
Dodaj tę zależność do build.gradle na poziomie aplikacji:
źródło
Dla tych, którzy napotykają ten problem, nawet po prawidłowym skonfigurowaniu usług odtwarzania i umieszczeniu
google-services.json
pliku wproject/app
folderze, rzeczywistym rozwiązaniem jestBuild > Rebuild Project
Prawdopodobnie z powodu faktu, że ciągi z pliku json nie są integrowane ze skompilowanymi zasobami, dopóki nie zostanie wykonana pełna przebudowa.
źródło
W przypadku Xamarin / Visual Studio Mac musiałem dodać to na dole mojego Droid.csproj
https://github.com/xamarin/GooglePlayServicesComponents/issues/64
źródło
To też mi się przytrafiło. W moim przypadku to dlatego, że Android Studio próbowało wstawić jakiś kod do mojej głównej aktywności. Usunięcie kodu naprawia błąd
Wstawiony kod dotyczy indeksowania aplikacji:
https://developers.google.com/app-indexing/android/publish
źródło
Miałem wtedy ten sam problem. Udało mi się go rozwiązać, korzystając tylko z niezbędnej biblioteki usług odtwarzania, którą w moim przypadku jest GCM.
Zamiast tego
com.google.android.gms:play-services:8.4.0
używamcom.google.android.gms:play-services-gcm:8.4.0
. Zobacz tutaj aby uzyskać więcej informacji; rozwiązuje to również problem multidex.Następnie zastosowałem podejście @Radix i @ Alexander, aby usunąć komunikat GCM został wyprowadzony w logcat dotyczący pliku
google-services.json
.źródło
Możesz zmienić
versionCode
iversionName
swojej aplikacji w pliku Gradle.źródło
Szybko naprawić użyłem jest do podpisania wyłączyć. Jeśli nie chcesz tworzyć kodu produkcyjnego, możesz ustawić wariant kompilacji na debugowanie, localOldDebug lub localDebug.
Kliknij opcję Buduj warianty w lewym dolnym rogu w Android Studio.
jak wyłączyć-generowane-podpisane-apk-android-studio
źródło
Mam tylko inne rozwiązanie, które przypadkowo usunąłem
Dodaj to i pracuj, jest dla nowego rozwiązania
źródło