谷歌地图api键不工作v2
我有一个Android应用程序,利用谷歌地图。 我遵循这些指令,并使用调试键在调试模式下工作。 我从这里找到的debug.keystore中检索了我的SHA-1密钥。谷歌地图api键不工作v2
C:\用户\自己\ .android \ debug.keystore使用
C:\ Program Files文件\的Java \ jdk1.7.0_03 \ BIN>的keytool -list -v -keystore c:\ debug.keystore
无论何时我在我的测试手机(运行android 2.3.6)时使用eclipse上的应用程序运行应用程序调试,地图显示都很好。
但是,完成应用程序后,在发布的应用程序中,地图未显示。什么是可见的只有灰色瓷砖。
我知道这是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运行)也没有显示任何地图。
我的问题如下。
这仍然是正确的使用方法吗?因为在 - https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key - 谷歌使用不同的方法使用片段。
我错过了什么?
此方法已被弃用或应该工作吗?
您正在为Google Maps V2生成一个ApiKey,但是您正在使用v1 MapView com.google.android.maps.MapView
。 在Android Maps V2 API上,密钥放置在清单上,并使用Google Play服务库使用com.google.android.gms.maps.MapView
显示地图。
如果您正在开发google maps api。你需要有两套map api key。通过使用调试密钥库中的SHA1指纹生成一个map api密钥,该图api密钥用于在eclipse中调试应用程序并从此处运行该应用程序。另一个map api key是通过使用官方或生产密钥库中的SHA1指纹生成的,当您将签名或发布您的应用时,将使用此map api key。
我认为您的密钥不匹配,因为清单上的map api密钥来自调试密钥库,并且您已使用官方密钥库对您的应用程序进行了签名。
另外我认为你正在开发MapView。现在建议现在使用MapFragments。我在这里有链接可能会帮助你。
快速入门指南:https://docs.google.com/document/d/1dFzZT0C782BxLkDIUEb711rmsbMmYPURFV_2Cdb36so/edit?usp=sharing
故障排除线程如果遇到问题,MapFragment或谷歌Play服务库: Unable instantiate android.gms.maps.MapFragment
而且我在这个How to/Error in declaring google-play-services-component这里的答案可以帮助你。
“不匹配”是什么意思?你能详细说明吗?如果可能举个例子? – tony9099 2013-02-23 14:13:10
@ tony9099当你从eclipse直接运行你的应用程序时,你基本上是用你的debug.keystore安装apk签名的,现在你的应用程序正在使用你的debug.keystore的SHA1生成的map api key,它会正常工作。现在,如果您正在发布apk,您将使用自己的密钥库对其进行签名,则地图现在不会显示,因为您的地图api密钥来自debug.keystore。您必须使用自己的密钥库中的SHA1指纹生成map api密钥,并在发布或签署应用时使用该映射api密钥。 – 2013-02-23 14:21:48
我用更多的信息和链接更新了我的答案。我希望这会帮助你。 :) – 2013-02-23 14:31:45
向我们展示您的AndroidManifest。我很好奇“18:3E:1D:8C:xx:xx:xx:xx:xx:xx:xx:xx:xx:x:xx:1D:E1:08:32:8E; .mycompany.mapapp“,尝试删除它。 – 2013-02-23 14:00:44
这是一个打字错误。现在已经纠正了。 – tony9099 2013-02-23 14:09:21