I had tried to use the Google Map Sample Code before which was provided in Google_Play_SERVICE/SAMPLE
by using all the available options and it showed the below Log.
01-14 17:58:39.773: E/Google Maps Android API(13114): Authorization failure.
It showed me the blank screen for all of the sample Map options.
Now I created a new Project and here is its complete code:-
Activity.java
public class MapActivity extends FragmentActivity
{
private Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
GoogleMap gMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(context);
Log.e("Maps", "Result int value::" + result);
switch (result) {
case ConnectionResult.SUCCESS:
Log.e("Maps", "RESULT:: SUCCESS");
break;
case ConnectionResult.DEVELOPER_ERROR:
Log.e("Maps", "RESULT:: DE");
break;
case ConnectionResult.INTERNAL_ERROR:
Log.e("Maps", "RESULT:: IE");
break;
case ConnectionResult.INVALID_ACCOUNT:
Log.e("Maps", "RESULT:: IA");
break;
case ConnectionResult.NETWORK_ERROR:
Log.e("Maps", "RESULT:: NE");
break;
case ConnectionResult.RESOLUTION_REQUIRED:
Log.e("Maps", "RESULT:: RR");
break;
case ConnectionResult.SERVICE_DISABLED:
Log.e("Maps", "RESULT:: SD");
break;
case ConnectionResult.SERVICE_INVALID:
Log.e("Maps", "RESULT:: SI");
break;
case ConnectionResult.SERVICE_MISSING:
Log.e("Maps", "RESULT:: SM");
break;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
Log.e("Maps", "RESULT:: SVUR");
break;
case ConnectionResult.SIGN_IN_REQUIRED:
Log.e("Maps", "RESULT:: SIR");
break;
default:
break;
}
gMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
gMap.setMyLocationEnabled(true);
Log.e("Maps", "------EOC-------");
}
}
activity_map.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.dottech.map"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:maxSdkVersion="17"
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="net.dottech.map.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="net.dottech.map.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.dottech.map.MapActivity"
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="removed" />
</application>
</manifest>
LOG
01-21 13:09:09.243: E/Maps(449): Result int value::0
01-21 13:09:09.243: E/Maps(449): RESULT:: SUCCESS
01-21 13:09:09.243: E/Maps(449): ------EOC-------
01-21 13:09:09.248: D/LocationManagerService(1852): gps location requested by an application
01-21 13:09:09.253: D/SensorManager(449): registerListener :: handle = 0 name= K3DH
Acceleration Sensor delay= 20000 Listener= maps.i.a@41a054f8
01-21 13:09:09.353: D/(449): Device driver API match
01-21 13:09:09.353: D/(449): Device driver API version: 10
01-21 13:09:09.353: D/(449): User space API version: 10
01-21 13:09:09.353: D/(449): mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Fri May 4 10:32:42 KST 2012
01-21 13:09:12.398: D/Sensors(449): Remain listener = Sending .. normal delay 200ms
01-21 13:09:12.398: I/Sensors(449): sendDelay --- 200000000
01-21 13:09:12.398: I/Sensors(1852): setDelay :: handle = 0 delay = 200000000
01-21 13:09:12.398: D/SensorManager(449): JNI - sendDelay
01-21 16:14:17.835: E/Google Maps Android API(12168): Failed to load map. Could not contact Google servers.
Screenshot
This is the result, Blank screen with zoom options, No map in MapView.
I have followed each and every step mentioned at:-
1.) Tutorial
Please see already posted answer on SO, it will definitely help you..
Need to import project from
\extras\google\google_play_services\libproject\google-play-services_lib
Update :
Let me know if it works for you..
In that case api key not correct then the google map not showing so follow answer.
Put the below Meta data in android Menifest file first.
And then put the right Api key in menifest file.
Please check..
check if the "libs" folder containing the "android-support-v4.jar" exists in your project.
"android-support-v4.jar" is located in "/extras/android/compatibility/v4/android-support-v4.jar" under your "android-sdk" drectory.
Before running your project, you must set your project Build target to "Google APIs", not Android x.x. version : Select your project and click Project > Properties > Project Build Target in Eclipse and select any "Google APIs ", and then run your project on your phone. If you use the emulator, also MUST set the AVD of the emulator to the any "Google APIs ".
Once more, you don't need to create the new Google Maps API key in order to test your project, Just use the default provided API key, which is shown as "Key for browser apps (with referers) "in your Google APIs Console.
Finally, the most important is to add Google Play services as an Android library project as follows:
Select File > Import > Android > Existing Android Code Into Workspace and click Next. Select Browse..., enter /extras/google/google_play_services/libproject/google-play-services_lib, and click Finish.
Please use the Browser key when you download and run the sample project from the internet. Android key will not work in that case and will give this error.
"Could not contact to server. Authorization Failed"
Go to your API Console and get your browser key
Thanks
Let me know if you have any queries regarding Google Maps Api V2
I have compiled your code and I get maps working. I think I discovered the problem: wrong credentials got cached.
The first time I ran your code, it was using wrong credentials. Although I have fixed them, I was still getting the "authorization failure" error. Then I simply uninstalled the app, ran it again and then maps got working.
Apparently Google Maps credentials are cached somewhere. Simpling running the app again does not overwrite them.
That also explains why I only got maps working after running my other app using Debug As (not Run As)...
I had the same problem as you and I got maps working only when running the application on a real device through "Debug As > Android Application".I'm a newbie in Android development. I don't know if this is just the way things are or we are missing something :)
I figured out the issue that was with registering the application certificate.
What we tried was that we sign the application with our own
keystore & alias
. But here we exactly need to use thedebug.keystore
which is already available in SDK.