This question already has an answer here:
I have been trying to app a Google Map in my Android app using the v2 API for the past two days, with no success. All I get every time is a
Google Maps Android API(16603): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
I have followed Google's setup tutorial (https://developers.google.com/maps/documentation/android/start), tried multiple times with different projects in different workspaces, tried different Google accounts, gone through various answers and suggestions here in StackOverflow, but to no avail.
I am using Eclipse 4.2.2 with Android SDK Tools 22.01 and I have installed Google Play services (rev. 7), also I have imported google-play-services_lib
into my workspace and added a reference to that to my android project.
Here is my code:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.googlemapdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.example.googlemapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.googlemapdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.googlemapdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my_api_key" />
</application>
</manifest>
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/the_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment"
/>
MainActivity.java
package com.example.googlemapdemo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Also I created an API Project on https://code.google.com/apis/console/ where I have enabled the Google Maps Android API v2
service. Then I obtained my SHA1 debug certificate fingerprint using
keytool -list -v -keystore "C:\Users\my_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
and entered that and the package name in the API console, got the API key and put it in the manifest (where my_api_key
is). This procedure I repeated a number of times, regenerating the key but with the same result.
Could anyone help with this or suggest anything else I could try? Any help will be greatly appreciated!
I have solved this kind of problem, i hope people who find the same problem with me(hopefully nobody else ever do the same mistake) will find this helpful
my cause was i made a mistake when i created the project, the package name was wrong then i changed the package name of the project, this will produce 2 applications with same name but different package name. starting from here the maps didnt work anymore. then even if i changed the server side google api key, it still wont work.
solution: try to uninstall both of apps first then clean the solution. and the map shows up again.
Just spend a few frustrating hours with this exact same issue.
Was trying to run the mapdemo application from Google. Generated new keys etc still would not run.
Simple solution as detailed above was to delete the app from the tablet and run again for eclipse. Problem went away.
In Eclipse: Window, Preferences, Android, Build, SHA1 fingerprint from the debug keystore is the value you need (this matches the Google documented way using Keytool form the command line).
Make sure that you are using the debug certificate fingerprint and not a release fingerprint in the Google Developers Console. Instructions on finding your debug key can be found here.
just to say, I was sure that I did everything well, but I finally noticed that the name of the package in the project was not the same as the one declared in the AndroidManifest.xml, so not the same as in Google APIs console.
Guess what, I changed it and... tadaa it worked !
So for who comes here, check that too !
Make sure you have apk signed with right key
http://developer.android.com/tools/publishing/app-signing.html