谷歌地图api键不工作v2

时间:2013-02-23 13:47:16

标签: android eclipse google-maps

我有一个利用谷歌地图的Android应用程序。 我已经按照指示操​​作,并使用调试键使应用程序在调试模式下工作。 我从这里找到的debug.keystore中检索了我的SHA-1密钥。

  

C:\用户\自己\ .android \ debug.keystore

使用

  

c:\ Program Files \ Java \ jdk1.7.0_03 \ bin> keytool -list -v -keystore c:\ debug.keystore

每当我通过在我的测试手机上运行eclipse的应用程序(运行android 2.3.6)时,地图显示正常。

然而,在完成应用程序后,在已发布的应用程序中,地图未显示。可见的只是灰色瓷砖。

我知道这是API密钥的问题。

所以我创建了一个新密钥(和带有它的apk),用它从谷歌的控制台生成一个新的API密钥。我删除了用密钥生成的apk,因为它有旧的ApiKey,并在此处粘贴了新的api密钥。

<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:id="@+id/mymap"
android:apiKey="my_api_key"

然后我重新导出了我的项目,但是这次使用的是与之前创建的步骤相同的密钥,因为它们包含相同的SHA-1。

但是,地图仍然没有显示,只显示灰色方块。 我已通过以下方式在api控制台中输入了SHA-1密钥。

  

18:3E:1D:8C:XX:XX:XX:XX:XX:XX:XX:XX:XX:X:XX:1D:E1:08:32:8E; com.mycompany.mapapp

我试图恢复到我的调试密钥,但这次调试应用程序(从eclipse运行)也没有显示任何地图。

我的问题如下。

  1. 这仍然是正确的使用方法吗?因为在 - https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key - 谷歌使用不同的方法使用片段。

  2. 我缺少什么?

  3. 此方法是否已弃用或应该有效?

2 个答案:

答案 0 :(得分:7)

您正在为Google Maps V2生成ApiKey,但您使用的是v1 MapView com.google.android.maps.MapView。 在Android Maps V2 API上,密钥会放在清单上,您可以使用com.google.android.gms.maps.MapView来显示地图,使用Google Play服务库。

我建议您阅读概述部分here,了解如何使用Google Play服务库设置您的项目,并查看新的API参考here

答案 1 :(得分:5)

如果您正在开发google maps api。你需要有两套map api密钥。通过使用调试密钥库中的SHA1指纹生成的一个映射api密钥,当您在eclipse中调试应用程序并从那里运行时,将使用此映射api密钥。另一个地图api密钥是使用官方或生产密钥库中的SHA1指纹生成的,当您签署或发布应用程序时,将使用此地图api密钥。

我认为您的密钥不匹配,因为清单上的地图api密钥来自调试密钥库,而您已使用官方密钥库签署了应用程序。

另外我认为你正在开发MapView。现在建议立即使用MapFragments。我这里有链接可能对你有帮助。

快速入门指南:https://docs.google.com/document/d/1dFzZT0C782BxLkDIUEb711rmsbMmYPURFV_2Cdb36so/edit?usp=sharing

如果您遇到MapFragment或Google Play服务库的问题,请排查问题: Unable instantiate android.gms.maps.MapFragment

此处我也可以在How to/Error in declaring google-play-services-component中找到可能对您有帮助的答案。