android map View 加载

标签 android maps

我正在制作一个使用 map View 的 Android 应用程序。从 pc 安装时,它们在设备上运行良好。但是当通过 android 市场在设备中安装相同的版本时, map 不会加载。以下是 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)

可能是什么问题 谁能帮我解决这个问题?? 谢谢

最佳答案

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

第 1 步:在命令行中导航到包含您的 keystore 文件的目录:

cd <keystore-dir>

第 2 步:现在列出您的 keystore 的内容:

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

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

第 4 步:将您要用于签署应用程序的证书的 MD5 复制到复制/粘贴缓冲区中。

第 5 步:打开浏览器并导航至 http://code.google.com/android/maps-api-signup.html - 如果您没有使用您的 Android 电子市场帐户登录,您接下来需要在生成 API key 之前执行此操作。

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

第 7 步:单击“生成 API key ”。您现在会看到需要使用的 API key 。

第 8 步:将 API key 复制并粘贴到 MapView 组件的 android:apiKey 中属性(property)。

如果你有多个 MapView组件然后你可以声明一个字符串资源:

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

现在您可以在您的 android:apiKey 中使用它属性的方式与您引用任何其他字符串值的方式相同:

android:apiKey="@string/production_api_key"

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

如果您遵循这个分步指南,您应该没问题 - 我自己刚刚开始使用以这种方式生成的 map API key 。

注意事项:

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

  • 在您生成 API key 时登录到 Google,但使用了错误的帐户。您的 map API key 和您的 Android 电子市场签名 key 必须属于同一个 Google 帐户。

关于android map View 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7633867/

相关文章:

java - 如何判断字符串中的某个字符是否为大写

c++ - 使用字符串键在映射数组中查找索引值

java - 使用 Netbeans 在 Java 中的 JPanel 或 JFrame 中放置 map

java - 在 Java 中访问 Map 中的单个值

java - Get 方法错误地返回空值

android - 是否可以在 Cordova Android 上的 WebMidi 中使用 SysEx 消息?

java - 取消异步任务的最佳方法

Java变量声明

android - Google 从当前位置到已知位置的定向路线

javascript - 传单 map 不会显示 - 只有灰色