10

I am getting this error:

E/Google Maps Android API: Authorization failure.  Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com)
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
    API Key: [The key...]
    Android Application (<cert_fingerprint>;<package_name>):

Instead of the map working correctly, this is what I see:

enter image description here

In my app/build.gradle, I have this:

implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.8'
implementation 'com.google.android.gms:play-services-awareness:16.0.0'
implementation 'com.google.android.gms:play-services-cast:16.2.0'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'

play-services-location is what I need for the Google Maps, correct? I was looking at the list at https://developers.google.com/android/guides/setup and I assume that Google Location and Activity Recognition - com.google.android.gms:play-services-location:16.0.0 is what I need for Google Maps. Is this correct?

UPDATE 1: I already have Maps SDK for Android enabled:

enter image description here

The error says: Ensure that the "Google Maps Android API v2" is enabled.. Is it referring to the Maps SDK for Android that I am showing in the screenshot in this UPDATE 1?

UPDATE 2: I have Maps SDK for Android enabled:

enter image description here

When I click the MANAGE button, I can go to the section to configure credentials that I showed in UPDATE 1.

UPDATE 3: I see the Map displayed correctly on all versions of Android on the Emulator. But on physical devices, the map never shows up. I see the Google logo and the red balloon, but now the map when I run the app on physical phones. Only on the Emulator everything works. Any ideas why?

UPDATE 4: See my solution at https://stackoverflow.com/a/56307654/4242086.

Jaime Montoya
  • 6,915
  • 14
  • 67
  • 103

7 Answers7

4

Hey I had the same problem today!,I solved it very easy for first you have to go https://console.developers.google.com and enable the android SDK maps and then create the api key, return in xamarin go to your manifest and add the google maps api key

https://learn.microsoft.com/it-it/xamarin/android/platform/maps-and-location/maps/obtaining-a-google-maps-api-key?tabs=windows

This is the documentation (I typed this fast because am on mobile now sorry)

R4y
  • 315
  • 1
  • 5
  • 14
2

I followed this tutorial and I was able to fix it: https://www.youtube.com/watch?v=sJBlQv6IptQ. The video makes references to this tutorial: http://ramsandroid4all.blogspot.com/2016/01/google-maps-android-example-in-android.html.

In my case, what I did was to create a new project at https://console.developers.google.com/. I used Android apps for Application restrictions:

enter image description here

For the Restrict usage to your Android apps section, I had to provide a Package name and a SHA-1 certificate fingerprint. The Package name was in my app/build.gradle, specifically here:

applicationId "[my package name]"

The SHA-1 certificate fingerprint I found it from Android Studio by running signingReport:

enter image description here

The result included something like this:

Alias: AndroidDebugKey
MD5: [The value]
SHA1: [The value]
SHA-256: [The value]
Valid until: Wednesday, May 5, 2049
----------

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
16:31:44: Task execution finished 'signingReport'.

Now the map works correctly in my Android app:

enter image description here

UPDATE 1: To my surprise, the maps were working correctly only on the Android Studio Emulator but not on real Android physical devices. The solution was what I posted at https://stackoverflow.com/a/56307654/4242086.

Jaime Montoya
  • 6,915
  • 14
  • 67
  • 103
2

follow to below link for generate google api key:- https://developers.google.com/maps/documentation/android-sdk/map-with-marker

Android Code Reference Link:-

https://www.zoftino.com/android-mapview-tutorial

Vicky
  • 19
  • 3
2

I got the exact same symptoms when I moved the project to a new computer. My solution was to generate a new key based on the error message. The google_maps_api.xml file had an URL in a comment to generate key but that is a static thing, so after moving the project to a new computer I rewrote the URL to match the error message's version.

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=[put-the-thing-here]

Generated the key, put it in the XML file and it worked well.

Ákos Nikházy
  • 1,276
  • 17
  • 33
2

In my case, I did everything right. but was still getting the error it turned out that changing the attribute "android:name" in the manifest file solved the issue.

Change

android:name="com.google.android.maps.API_KEY"

To

android:name="com.google.android.maps.v2.API_KEY"

1

Time changed the configurations steps. Here the new one.

  1. Set up your project https://console.cloud.google.com/projectselector2/home/dashboard

  2. Enable Google Maps API. Go to https://console.cloud.google.com/apis/library?filter=category:maps&_ga=2.192684329.2027491681.1618180744-3962552.1609436892 choose the API you want to enable

  3. Go to API Credentials https://console.cloud.google.com/project/_/apiui/credential of your project

  4. On the Credentials page, click Create credentials > API key. The API key created dialog displays your newly created API key

  5. Click Close.

  6. In Android Studio, open your app-level build.gradle file and add the following code to the plugins element. id 'com.google.secrets_gradle_plugin' version '0.5'

  7. Save the file and sync your project with Gradle

  8. Open values\google_maps_api.xml and replace YOUR_API_KEY with the API got in the point 4.

  9. Check in your AndroidManifest.xml the MAPS_API_KEY is replaced with your actual key

    android:name="com.google.android.geo.API_KEY"
    android:value="${MAPS_API_KEY}" />
  1. Insert in your AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
  1. Go to the APIs & Services > Credentials page https://console.cloud.google.com/project/_/apiui/credential
  2. Select the API key that you want to set a restriction on. The API key property page appears
  3. Under Key restrictions --> Select Android apps. Click + Add package name and fingerprint. Enter your package name and SHA-1 certificate fingerprintClick Restrict key. Select Maps SDK for Android from Select APIs dropdow
  4. To finalize your changes, click Save.
DarkCoffee
  • 930
  • 3
  • 17
  • 30
0

For those who still haven't figured it out yet, again take a look at the logging below the error message. Pay close attention to your certifcate_fingerprint and package_name printed out in the logging. Compare these diligently with the ones specified in your Google Development Console.

I picked up an old hobby project again after almost an entire year of inactivity. I probably changed something somewhere that triggered a change of the certificate fingerprint, or visa versa.

Hope this helps!