谷歌地图Android版出现错误:“Android无法加载地图。无法联系谷歌服务器。”

5

我正在尝试在我的Android应用中实现谷歌地图,但是我卡在了一个错误上:“android Failed to load map. Could not contact Google servers”。

我已经包含了Google Play库,并使用SHA1证书指纹获取了密钥。我得到的SHA1证书指纹为:

 sudo keytool -v -list -alias androiddebugkey \-keystore /home/.android/debug.keystore

我根据这个链接来管理我的清单文件。
现在我无法找到此错误的原因... 任何建议都将不胜感激...
  • 我在stackoverflow上看到了一些问题,但是没有得到任何解决方法!

编辑: 我的清单文件权限如下:

<permission
    android:name="PAKG_NAME.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="PAKG_NAME.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<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="android.permission.com.google.android.providers.gsf.permission.READ_GSERVICES" />


<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />


.....................

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

我的布局XML文件中有一个片段:

  <fragment
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            class="com.google.android.gms.maps.SupportMapFragment" />

日志输出:

 E/Google Maps Android API(31478): Failed to load map.  Could not contact Google servers.

我多次更改/重新创建了API密钥,但仍然出现相同的错误。 - Saad Asad
@Saad Khokhar-请在此处发布您的XML。 - TheFlash
6个回答

4
你确定你已经启用了“Google Maps Android API v2”,而不是“Google Maps API v2”吗?更改后,删除并重新创建API密钥。这对我起作用了...

简直不敢相信:犯了那个粗心大意的错误。非常感谢! - shkschneider

3

尝试右键单击您的项目,选择属性 > Android > 并在 "项目构建目标" 中选择 Google APIs。这对我有用 :)


2
如果您确定您的API密钥是正确的,那么您应该将程序从手机上卸载并重新安装。这对我有用 :)

我认为安卓商店首先在程序缓存中使用API密钥,因此您需要清除缓存或卸载应用程序以使用新的API密钥。 - Mohammed Subhi Sheikh Quroush

0

您应该检查是否在同一项目中有重复的API_KEY。正如您所知,我们将使用sha1密钥和Android项目名称来获取API密钥。如果您尝试使用相同的sha1;android_project_name对来获取API密钥,Google将会给您另一个API密钥。因此它是重复的。如果您删除较新的API密钥并在您的项目中使用较旧的API密钥,那么它将解决您的问题。至少我希望如此 :)


0
你在控制台检查是否已启用了Google Android地图API v2。 我认为你启用了Google地图v2,所以请求失败了...

https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api。我认为你需要在Google控制台中创建API项目。 - Nitin Gupta
我已从控制台启用了Google Maps Android API v2,但仍然收到相同的错误。 - Saad Asad
@gupta,是的,我已经按照所有这些步骤进行了操作。 - Saad Asad
@Saad Khokhar,请发布您的logcat输出。 - TheFlash
请查看问题,我已经用我的logcat输出进行了编辑! - Saad Asad

0

我在重构和更改项目包标识符时遇到了这个问题。如果您也是这种情况,您需要在Google开发者控制台上创建一个新项目,并重新链接到您的项目。由于某种原因,如果应用程序更改其ID,Google会阻止来自同一应用程序的请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接