android 地图视图加载

发布于 2024-12-07 21:51:17 字数 1246 浏览 0 评论 0原文

我正在制作一个 Android 应用程序,其中使用地图视图。当从电脑安装时,它们在设备上完美运行。但是当通过 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)

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

I am making an android app in which i am using mapviews. they are working perfectly on the device when installed from the pc.but when the same build is installed in device through android market, the maps does not load. following is the logcat output.

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)

what could be the problem
can anyone please help me over ths??
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰葑 2024-12-14 21:51:17

您无法使用 debug.keystore 为进入市场的应用程序创建 Google Maps API 密钥。如果您已经在市场上拥有该应用程序(或者实际上任何应用程序),那么您已经拥有了应该使用的密钥库。这是使用此密钥库获取 Google 地图 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 Market 帐户登录,则接下来需要在生成 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 (md5),而不是证书的 MD5。它是您需要的证书的 MD5。

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

You can't use debug.keystore to create a Google Maps API key for applications going into the market. If you already have the application (or indeed any application) in the market then you already have the keystore you should use. This is how you use this keystore to get a Google Maps API key:

Step 1: At the command line navigate to the directory with your keystore file in it:

cd <keystore-dir>

Step 2: Now list the contents of your keystore:

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

Step 3: Enter the password for your keystore when prompted. Keytool will now display a list of certificates and their MD5s.

Step 4: Copy the MD5 for the certificate you are going to use to sign your application into your copy/paste buffer.

Step 5: Open a browser and navigate to http://code.google.com/android/maps-api-signup.html - if you're not logged in with your Android Market account, you'll need to do that next, before you generate your API key.

Step 6: Paste the MD5 from your copy/paste buffer into the text box labelled "My certificate's MD5 fingerprint:" and tick the "I have read and agreed..." box.

Step 7: Click 'Generate API Key'. You'll now see the API key you need to use.

Step 8: Copy and paste the API key into your MapView component's android:apiKey property.

If you have multiple MapView components then you can declare a string resource:

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

Now you can use this in your android:apiKey property in the same way that you reference any other string value:

android:apiKey="@string/production_api_key"

Now export the application to an APK file using the certificate you used in step 4.

Provided you follow this step-by-step guide you should be OK - I've just myself started using a maps API key generated in this way.

Things to watch out for:

  • Using the MD5 of the keystore file (md5 <my-keystore-file>), not of the certificate. Its the MD5 of the certificate you need.

  • Being logged in to Google when you generate the API key, but with the wrong account. Your maps API key and your Android Market signing key must belong to the same Google account.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文