GoogleService failed to initialize

AndroidGoogle MapsAndroid MapviewAndroid Maps-V2

Android Problem Overview


I am using google Maps in my android application. I have created the key and added necessary permissions in manifest file. But soon I start the application I get this message in debugger:

> GoogleService failed to initialize, status: 10, Missing an expected > resource: 'R.string.google_app_id' for initializing Google services. > Possible causes are missing google-services.json or > com.google.gms.google-services gradle plugin.

I am not sure whats wrong. The Map is working fine and I can use it without any issues. My gradle file has this entry:

> compile 'com.google.android.gms:play-services:8.4.0'

What is it complaining about and how do I alleviate it?

Android Solutions


Solution 1 - Android

[From Product Manager @ Google]

You can fix this issue by downloading and copying the google-services.json file for your Android app by following the steps below:

  • Select your app/project name and Android packagename from this link and click Continue to Choose and configure services.
  • Click Continue to Generate Configuration files.
  • Download google-services.json and copy the file to the app/ or mobile/ module directory in your Android project.

If you have previously imported your Google project into Firebase, you can get the updated google-services.json from the Firebase console under Project Settings.

DO NOT COPY the PROJECT_NUMBER as suggested by one of the other answers since the google_app_id refers to your app within a Project and not the project itself.

Solution 2 - Android

You need to place the configuration file (google-services.json) generated by developer.google.com, as mentioned in the 2nd step of the official docs here

The process is simple

  1. You can select your project or create a new one.

  2. Then after selecting desired services (in this case the maps service), you can generate the configuration file. >For people who have migrated to the Firebase projects they can get the same by going to Firebase Console, selecting your project and under settings you will find the configuration file.

  3. Then as quoted in step 3 of the official docs here > Copy the google-services.json file you just downloaded into the app/ or mobile/ directory of your Android

P.S : For people downvoting this answer, please do leave a comment as to why you are down voting it.

Solution 3 - Android

In my case, the cause of this error was that the Google Services plugin for Gradle and the Play Services library were incompatible versions. Instructions for compatible versions:

  1. Add the dependency to your project-level build.gradle:

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

  2. Add the plugin to your app-level build.gradle:

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

  3. If you're using Android Studio, this is the string to add to the dependency section of your application's build.gradle file:

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

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

Solution 4 - Android

I met the same problem and solved it followed the official solution.

Here are the steps:

  1. get the configuration file google-services.json from this link.

  2. Copy the google-services.json file you just downloaded into the app/ or mobile/ directory of your Android Studio project.

  3. Add the dependency to your project-level build.gradle:

     classpath 'com.google.gms:google-services:1.5.0-beta2'
    
  4. Add the plugin to your app-level build.gradle:

     apply plugin: 'com.google.gms.google-services'
    
  5. Add this dependency to your app-level build.gradle:

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

Solution 5 - Android

For those who face this problem even after correctly setting up play services and placing google-services.json file in project/app folder, the actual solution is to

Build > Rebuild Project

Possibly due to the fact that strings from json file are not integrated into compiled resources until a full rebuild is performed.

Solution 6 - Android

For Xamarin/Visual Studio Mac I needed to add this to the bottom of my Droid.csproj

<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

Solution 7 - Android

This also happen to me. In my case, it is because Android studio tried to insert some code to my main activity. Removing the code fixes the error

Inserted code is about App Indexing:

https://developers.google.com/app-indexing/android/publish

Solution 8 - Android

I had the same issue back then. Was able to solve it by using only the necessary play services library, which in my case GCM.

Instead of com.google.android.gms:play-services:8.4.0, I use com.google.android.gms:play-services-gcm:8.4.0. See here for more info; this also solves multidex problem.

Then I applied both @Radix and @Alexander's approach to remove the message GCM has been output in the logcat regarding the google-services.json.

Solution 9 - Android

You can change the versionCode and versionName of your app in your Gradle file.

Solution 10 - Android

A quick fix I used is to disable signing. If you aren't wanting to create production code you can set your build variant to debug, localOldDebug or localDebug.

Click on Build Variants on the bottom left in Android Studio.

https://stackoverflow.com/questions/33887927/how-to-disable-generated-signed-apk-android-studio">how-to-disable-generated-signed-apk-android-studio</a>

Solution 11 - Android

Just have another solution i'm remove accidentally

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

Add this and work, is for new solution

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionZachView Question on Stackoverflow
Solution 1 - AndroidSriramView Answer on Stackoverflow
Solution 2 - AndroidNishant SrivastavaView Answer on Stackoverflow
Solution 3 - Android13rac1View Answer on Stackoverflow
Solution 4 - AndroidWillView Answer on Stackoverflow
Solution 5 - AndroidanandbibekView Answer on Stackoverflow
Solution 6 - AndroidstepheawView Answer on Stackoverflow
Solution 7 - AndroidSuperbijiView Answer on Stackoverflow
Solution 8 - AndroidemenView Answer on Stackoverflow
Solution 9 - AndroidF. MilliardView Answer on Stackoverflow
Solution 10 - AndroidDudasView Answer on Stackoverflow
Solution 11 - AndroidCazsView Answer on Stackoverflow