GoogleService başlatılamadı


113

Android uygulamamda google Maps kullanıyorum. Anahtarı oluşturdum ve manifest dosyasına gerekli izinleri ekledim. Ama yakında uygulamaya başlıyorum, bu mesajı hata ayıklayıcıda alıyorum:

GoogleService başlatılamadı, durum: 10, Beklenen bir kaynak eksik: Google hizmetlerini başlatmak için "R.string.google_app_id". Olası nedenlerde google-services.json veya com.google.gms.google-services gradle eklentisi eksiktir.

Neyin yanlış olduğundan emin değilim. Harita iyi çalışıyor ve herhangi bir sorun yaşamadan kullanabilirim. Gradle dosyamda şu giriş var:

'com.google.android.gms: play-services: 8.4.0' derleyin

Neden şikayet ediyor ve bunu nasıl hafifletebilirim?


bildiriminizde bu mu: <meta-data android: name = "com.google.android.gms.version" android: value = "@ integer / google_play_services_version" />
j2emanue


İkisini de denedim ama hala aynı mesajı alıyorum!
Zach

1
Cihaz oyun hizmetleri apk güncellenmiş mi?
Abhigyan

Bu çözümlerin hiçbiri işe yaramıyordu, ancak Hizmetler APK'sını güncellemek işe yaramış gibi görünüyordu!
midoriha_senpai

Yanıtlar:


38

Buradaki resmi belgelerin 2. adımında belirtildiği gibi, developer.google.comgoogle-services.json tarafından oluşturulan yapılandırma dosyasını ( ) yerleştirmeniz gerekir.

İşlem basit

  1. Projenizi seçebilir veya yeni bir tane oluşturabilirsiniz.
  2. Ardından istenen hizmetleri seçtikten sonra (bu durumda haritalar hizmeti), yapılandırma dosyasını oluşturabilirsiniz.

    Firebase projelerine geçiş yapmış kişiler, Firebase Konsolu'na gidip projenizi seçerek aynı şeyi alabilirler ve ayarlar altında yapılandırma dosyasını bulacaksınız.

  3. Sonra gibi resmi dokümanlar 3. adımda alıntı burada

    google-services.jsonİndirdiğiniz dosyayı Android'inizin app / veya mobile / dizinine kopyalayın

Not: Bu yanıta olumsuz oy veren kişiler için, lütfen bu yanıta neden olumsuz oy verdiğiniz konusunda bir yorum bırakın.


6
Google Play Hizmetlerinin yeni sürümüyle uygulamalarımızda buna gerçekten ihtiyacımız var mı? Yoksa sadece Google'da oturum açmak için mi? Günlüklerin ihtiyacım varmış gibi bana hatalar atması tuhaf görünüyor, ancak olmayabilirim
RED_

2
@Radix ... Paylaştığınız bağlantıya gittim, ancak benden Google Oturum Açma veya Google Bulut Mesajlaşma'ya kaydolmamı istedi ... harita hakkında hiçbir şey yok. Herhangi bir fikir? Ayrıca, bu json dosyasını / app altına kopyalamak biraz garip ... Açıklayabilir misin? Çok teşekkürler!
Johnny Wu

2
Uygulamamızda zaten google-services.json vardı, ancak 8.4.0'a yükseltirken onu yeniden oluşturmak zorunda kaldık.
Roy Solberg

1
aynı sorun, google-services.json eklemek yardımcı olmadı, zaten etkinleştirilmiş gcm'mi görmemesi ve her seferinde kendi sunucu anahtarımı oluşturmak istemesi garip bir şey
Andrew V.

11
Google'daki ürün yöneticisinin verdiği doğru yanıtı burada görün: stackoverflow.com/questions/34365369/…
Ahmed Mounir

52

[Ürün Yöneticisi @ Google'dan]

google-services.jsonAşağıdaki adımları izleyerek Android uygulamanız için dosyayı indirip kopyalayarak bu sorunu çözebilirsiniz :

  • Bu bağlantıdan uygulamanızı / proje adınızı ve Android paket adını seçin ve tıklayın Continue to Choose and configure services.
  • Tıklayın Continue to Generate Configuration files.
  • google-services.jsonDosyayı indirin ve Android projenizdeki app/veya mobile/modül dizinine kopyalayın .

Google projenizi daha önce Firebase'e aktardıysanız, güncellenmiş google-services.json dosyasını Firebase konsolundan Proje Ayarları altında alabilirsiniz.

Google_app_id, projenin kendisine değil, bir Proje içindeki uygulamanıza atıfta bulunduğundan, diğer yanıtlardan birinin önerdiği şekilde PROJECT_NUMBER'ini KOPYALAMAYIN .


1
Gradle-deneysel eklenti kullanan kişiler için, google-services.json doğrudan etkili olmayacaktır. Geçici çözüm için lütfen stackoverflow.com/a/38097895/457137 adresine bakın .
zevoid

Json dosyasını eklemek neden zorunludur? Kodda çalışma zamanında kimliği neden sağlayamıyorum?
der_michael

Dosya / app dizinine mi gidiyor , üst düzey dizine değil mi?
IgorGanapolsky

11

Benim durumumda, bu hatanın nedeni Gradle için Google Hizmetleri eklentisinin ve Play Hizmetleri kitaplığının uyumsuz sürümler olmasıydı. Uyumlu sürümler için talimatlar:

1) Bağımlılığı proje düzeyinde build.gradle'a ekleyin:

classpath 'com.google.gms:google-services:1.5.0-beta2'

2) Eklentiyi uygulama düzeyinde build.gradle'a ekleyin:

apply plugin: 'com.google.gms.google-services'

3) Android Studio kullanıyorsanız, bu, uygulamanızın build.gradle dosyasının bağımlılık bölümüne eklenecek dizedir:

dependencies {
  compile "com.google.android.gms:play-services:8.3.0"
}

Kaynak: https://developers.google.com/cloud-messaging/android/client


1
Teşekkürler, ama bu benim için işe yaramadı - Android Studio, google-services.json dosyasını da yüklediğimde ısrar ediyor, ancak yukarıdaki üç adımı izlediyseniz ve bu dosya ihtiyacını geçersiz kılarsanız gereksiz olduğunu düşündüm. Bu da bana şunu sormamıza neden oluyor: Sağladığım tek şey temel eşleme ise neden bir Google Kullanıcı Oturum Açma sistemine ihtiyacım var?
iaindownie

1
Çözümüm listelenmedi, bu yüzden insanlara bu sorun için başka bir olası çözüm sunmak için soruyu yanıtladım. Sizin durumunuzda, yüklü fazladan kitaplıklarınız olabilir. Yalnızcacom.google.android.gms:play-services-maps:8.4.0
13rac1

@eosrei, yalnızca com.google.android.gms kullanıyor: play-services-maps: 8.4.0 benim için çalıştı, teşekkürler!
akshay7692

4

Ben de aynı problemle karşılaştım ve resmi çözümü takip ederek çözdüm .

İşte adımlar:

  1. yapılandırma dosyasını almak google-services.jsonitibaren bu bağlantı .

  2. google-services.jsonİndirdiğiniz dosyayı Android Studio projenizin app / veya mobile / dizinine kopyalayın .

  3. Bağımlılığı proje düzeyinde build.gradle'ınıza ekleyin:

    classpath 'com.google.gms:google-services:1.5.0-beta2'
  4. Eklentiyi uygulama düzeyinde build.gradle'a ekleyin:

    apply plugin: 'com.google.gms.google-services'
  5. Bu bağımlılığı uygulama düzeyinde build.gradle'a ekleyin:

    dependencies {
        compile "com.google.android.gms:play-services:8.3.0"
    }

1
Com.google.gms: google-services: 1.5.0'ı kullanmanın daha iyi olacağını düşünüyorum çünkü uygulamanızdaki bazı öngörülemeyen hataları kaldırmak için beta sürümünden daha iyidir.
Andrew V.

@AndrewV. Evet katılıyorum. "1.5.0-beta2" versiyonu yukarıda verdiğim linkten kopyalandı.
Will

1

Oynatma hizmetlerini doğru bir şekilde kurduktan ve google-services.jsondosyayı project/appklasöre yerleştirdikten sonra bile bu sorunla karşılaşanlar için gerçek çözüm,

Build > Rebuild Project

Muhtemelen json dosyasındaki dizelerin, tam bir yeniden oluşturma gerçekleştirilinceye kadar derlenmiş kaynaklara entegre edilmemesi nedeniyle.


1

Xamarin / Visual Studio Mac için bunu Droid.csproj'umun altına eklemem gerekiyordu

<Target Name="ProcessGoogleServicesJson" Condition=" '@(GoogleServicesJson)' != '' AND '$(AndroidApplication)' == 'True' AND '$(DesignTimeBuild)' != 'True'" BeforeTargets="$(ProcessGoogleServicesJsonBeforeTargets)" AfterTargets="$(ProcessGoogleServicesJsonAfterTargets)">
<Message Text="Using ProcessGoogleServicesJson override" Importance="high" />
<ProcessGoogleServicesJson GoogleServicesJsons="@(GoogleServicesJson)" IntermediateOutputPath="$(IntermediateOutputPath)" MonoAndroidResDirIntermediate="$(MonoAndroidResDirIntermediate)" AndroidPackageName="$(_AndroidPackage)">
    <Output ItemName="_AndroidResourceDest" TaskParameter="GoogleServicesGeneratedResources" />
    <Output ItemName="FileWrites" TaskParameter="GoogleServicesGeneratedResources" />
</ProcessGoogleServicesJson>
<ItemGroup>
    <FileWrites Include="$(IntermediateOutputPath)\ProcessGoogleServicesJson.stamp" />
</ItemGroup>

https://github.com/xamarin/GooglePlayServicesComponents/issues/64



0

O zamanlar aynı sorunu yaşadım. Sadece gerekli oyun hizmetleri kitaplığını kullanarak çözebildim, benim durumumda GCM.

Bunun yerine com.google.android.gms:play-services:8.4.0kullanıyorum com.google.android.gms:play-services-gcm:8.4.0. Daha fazla bilgi için buraya bakın ; bu aynı zamanda multidex problemini çözer.

Sonra hem @Radix hem de @ Alexander'ın GCM'nin google-services.json.


0

Gradle dosyanızda uygulamanızın versionCodeve versionNamedeğerini değiştirebilirsiniz .



-2

Sadece başka bir çözüm bul, yanlışlıkla kaldırıyorum

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

Bunu ekleyin ve çalışın, yeni çözüm için

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.