android mapview加载

时间:2011-10-03 10:36:42

标签: android maps

我正在制作一个Android应用程序,我在其中使用mapviews。从pc上安装时,它们在设备上完美运行。但是当通过Android市场在设备中安装相同的版本时,地图不会加载。以下是logcat输出。

10-03 15:54:51.784: WARN/System.err(12994): java.io.IOException: Server returned: 3
10-03 15:54:51.784: WARN/System.err(12994):     at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
10-03 15:54:51.784: WARN/System.err(12994):     at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
10-03 15:54:51.784: WARN/System.err(12994):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
10-03 15:54:51.784: WARN/System.err(12994):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
10-03 15:54:51.784: WARN/System.err(12994):     at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
10-03 15:54:51.784: WARN/System.err(12994):     at java.lang.Thread.run(Thread.java:1019)

可能是什么问题 有人可以帮助我吗? 感谢

1 个答案:

答案 0 :(得分:7)

您不能使用debug.keystore为进入市场的应用程序创建Google Maps API密钥。如果您已经拥有市场上的应用程序(或任何应用程序),那么您已经拥有了应该使用的密钥库。这是您使用此密钥库获取Google Maps API密钥的方式:

步骤1:在命令行导航到包含密钥库文件的目录:

cd <keystore-dir>

第2步:现在列出密钥库的内容:

keytool -list -keystore <your-keystore-file>

步骤3:在提示时输入密钥库的密码。 Keytool现在将显示证书及其MD5的列表。

步骤4:复制MD5以获取您要用于将应用程序签名到复制/粘贴缓冲区的证书。

第5步:打开浏览器并导航至http://code.google.com/android/maps-api-signup.html - ,如果您未使用Android电子市场帐户登录,则需要在生成之前进行操作你的API密钥。

步骤6:将MD5从您的复制/粘贴缓冲区粘贴到标有“我的证书的MD5指纹:”的文本框中,并勾选“我已阅读并同意...”框。

步骤7:点击“生成API密钥”。您现在将看到需要使用的API密钥。

步骤8:将API密钥复制并粘贴到MapView组件的android:apiKey属性中。

如果您有多个MapView组件,则可以声明字符串资源:

<string name="production_api_key">thisIsMyKeyValue</string>

现在您可以在android:apiKey属性中使用它,就像引用任何其他字符串值一样:

android:apiKey="@string/production_api_key"

现在使用您在步骤4中使用的证书将应用程序导出到APK文件。

如果你按照这个循序渐进的指南,你应该没问题 - 我刚刚开始使用以这种方式生成的地图API密钥。

需要注意的事项:

  • 使用密钥库文件(md5 <my-keystore-file>)的MD5,而不是证书的MD5。它是您需要的证书的MD5。

  • 生成API密钥时登录Google,但帐号错误。您的地图API密钥和Android电子市场签名密钥必须属于同一个Google帐户。