Google Maps API V2 'Failed to Load Map. Could not contact Google Servers'

后端 未结 10 1071
礼貌的吻别
礼貌的吻别 2020-11-27 21:08

I have checked and double checked my APIkey that I registered on the Google Console however I am still getting the following error:

12-05 16:31:12.940: E/Goo         


        
相关标签:
10条回答
  • 2020-11-27 21:20

    After spending many hours, the problem had been eventually solved:

    if none of the above helped you solving your problem, try to put your api key into values/strings.xml

    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/map_key"/>
    
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <string name="map_key">YOUR_KEY</string>
    </resources>
    
    0 讨论(0)
  • 2020-11-27 21:24

    Just create new API key with SHA and most importantly correct package name (like com.example.mapdemo). Use the new generated key in your AndroidManifest.xml.

    I guess we need new API key for all new eclipse projects which uses Google maps (as creating new key also requires the package name, which is essentially different for all projects).

    0 讨论(0)
  • 2020-11-27 21:30

    It could be an issue with the Manifest. The following works for me, specifically permission.MAPS_RECEIVE solved a similar issue I had: zoom buttons and myLocation displayed, but map had no tiles...

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.discos2.example"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
    
        <permission
            android:name="com.discos2.example.permission.MAPS_RECEIVE"
            android:protectionLevel="signature" />
    
        <uses-permission android:name="com.discos2.example.permission.MAPS_RECEIVE" />
    
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    
        <uses-feature
            android:name="android.hardware.location"
            android:required="false" />
        <uses-feature
            android:name="android.hardware.location.network"
            android:required="false" />
        <uses-feature android:name="android.hardware.location.gps" />
        <uses-feature
            android:name="android.hardware.wifi"
            android:required="false" />
        <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true" />
    
        <application
            android:hardwareAccelerated="true">
            <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="__NEW_GOOGLE_MAPS_V2_KEY_GOES_HERE__" />
    
            <activity
                android:name=".ui.activities.MainActivity" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
        </application>
    
    </manifest>
    
    0 讨论(0)
  • 2020-11-27 21:31

    I had the same problem. I just simply missed this point: When you list your Google APIs services, there are three Google Maps API available.

    Google Maps Android API v2
    Google Maps API v2
    Google Maps API v3 ...

    Check that you have Android version (Google Maps Android API v2) enabled, when you code for Android. Google Maps API v2 was not good enough.

    0 讨论(0)
  • 2020-11-27 21:32

    For setting up Google Maps API v2 on Android, make sure that you have completed all of the following steps.

    App Key For API Access

    When Google asks for the SHA1 fingerprint of your app certificate, you will want most likely want to run this twice, once for your debuging certificate, and once for your publishing certificate.

    keytool -list -v -keystore publishcert.keystore
    keytool -list -v -keystore ~/.android/debug.keystore

    The fingerprint of the app on the market is different then the fingerprint of an app that you are just testing!

    Enable the service on the Google API Console

    Login to the Google API Console.
    On the services page, find Google Maps Android API v2.

    Note - Google Maps API v2 is DIFFERENT then Google Maps Android API v2

    In the API Access tab, click Create new Android Key

    Add your certificate signatures for access to the APIs.

    yourrelease-fingerprint;com.example.project.package
    yourdebug-fingerprint;com.example.project.package

    You will be provided with a generated API Access Key.

    You may need to first create an API Project in the API Console

    Amend the App Manifest

    Add your API Key, inside of the <application> element.

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="yourapikey"/>
    

    Add the following permissions:

    <permission
            android:name="com.example.project.package.permission.MAPS_RECEIVE"
            android:protectionLevel="signature"/>
    
    <uses-permission android:name="com.example.project.package.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"/>
    

    Add the following feature request:

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
    
    0 讨论(0)
  • 2020-11-27 21:34

    Make sure all below mentioned points are taken care:

    1) Wrong service was enabled. Make sure the "Google Maps Android API v2", not "Google Maps API v2" is enabled and re-generate the API key.

    2) Add the following elements to your manifest. Replace com.example.mapdemo with the package name of your application.

    3) Use of correct certificate and key. Release certificate, which WILL NOT WORK during debugging when you run the app on my phone. You have to use the debugging keystore certificate fingerprint instead.

    0 讨论(0)
提交回复
热议问题