Google地图在Android中签署api重要错误

当我从debugging映射键切换到我签名的映射键时,我的地图停止工作。 我在logcat中得到以下错误:

09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26 09-03 18:18:04.112: WARN/System.err(4073): java.io.IOException: Server returned: 3 09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 09-03 18:18:04.112: WARN/System.err(4073): at java.lang.Thread.run(Thread.java:1019) 

我已经加倍检查了一切,权限和库已经到位。 我已经重新制作了钥匙,没有运气。

有任何想法吗?

我有同样的问题,我想在互联网上没有任何有用的答案,所以希望这将有助于在未来的每个人。

在使用GoogleMaps for Android ,您需要两个键 – debugging和发布。

“debugging”键是一个误导性的术语。 在Eclipse中开发应用程序时,也可以使用这个键。 所以本质上,使用debugging密钥进行开发,testing和debugging。

当您准备将应用程序推向市场时,在AndroidManifest.xml设置android:debuggable="false" ,并使用签名的API密钥。

使用签名的API密钥时,只有在Android Market安装应用程序时, MapView才会显示。 所以,从Eclipse (Run As,Debug As等)或命令行(adb install)安装应用程序将不会显示MapView 。 放心,一旦应用程序在市场 – 你下载它, MapView将出现。

使用已签名的API密钥,如果您从Eclise部署应用程序,则会收到“服务器返回3,IOProcessingexception26”作为警告 – 忽略它。

注意:还要确保没有相同MapView的重复实例。 如果你的应用需要“x”号。 的MapView的,生成“X”没有。 因为GoogleMaps对单个MapView实例具有查询限制,所以新签名的键(每个MapView都有一个)。

要获取这两个密钥,请按照获取Android版GoogleMaps的API密钥的步骤操作。

快乐编码!

更新:

上面获得API密钥的链接现在是一个弃用的过程。 请参阅获取GoogleMaps Android API v2的API密钥 。

最后它的固定。

我正在使用Windows机器,所以我只需要到C:\Users\rohit\.android并删除debug.keystoredefault.keyset1一旦完成,我去了Eclipse,并将一个干净的构build应用到我的项目和它的完成!

签名的map key用于发布应用程序。 所以你会得到这样的信息。 如果你通过USB连接签名映射密钥来debugging应用程序。 如果要debugging应用程序,请切换callback试映射键,并在发布更新或新版本之前将其replace为带有签名的映射键。

我有同样的问题。 就我而言,我做错了是这样的。 我正在写这个keytool命令:

 keytool -list -keystore debug.keystore ... 

代替:

 keytool -list -keystore ~\.android\debug.keystore ... 

所以我没有用我的指纹更新Eclipse的密钥库。

我希望这可以帮助别人:)

我刚刚遇到完全相同的问题。

没有用户编写的代码抛出exception:它是在Eclipse logcat中生成的,结果是,您看不到任何Google地图切片。 像仁一样,我重新获得了关键,无济于事。

平台是Android 3.2,设备是华硕变压器,连接是WiFi。

仅供参考,我的Android 2.2应用程序工作正常,检索3G上的Droid地图。

这是我的问题的解决scheme,希望它有助于仁:

在我的情况下,如果我使用“Debug as”Eclipse图标和Transformer USB-tethered将发行版本安装到Transformer上,则映射失败,如上所述(仅供参考,这是我多次使用Android 2.2和其他设备)。

所以我尝试了这个:我使用Eclipse File | Export …选项来创build一个APK版本,然后使用它的Asus Sync应用程序将这个APK安装到Transformer上。 一切安好。 出现地图图块。

如果您使用的是其他人生成并提供给您的debugging密钥,那么空白贴图的原因有以下例外。

 java.io.IOException: Server returned: 3 

您可以使用此链接获取API密钥: 注册

还有一件事:添加-v后,你必须记住,谷歌API只需要MD5而不是SHA1.So请检查你给谷歌的代码。

我有同样的问题,但我想我find了答案!

  1. 决定按照这些步骤https://developers.google.com/android/maps-api-signup并获得您的证书的MD5指纹;
  2. 在发展的时候,如果地图不显示,不要担心这个! 简单的解压缩APK使用安卓工具与第一步中使用的关键工具,并使用此APK文件安装在您的手机上,你会看到MapView

无论如何,在开发的时候,也许你没有看到MapView,但是这不是问题,不要担心这个! 简单的等待,当完成应用程序与您的密钥库构build,你会看到地图显示正确

对于试图从sdk extras构build地图示例的可怜的灵魂:只要我将包从com.example.mapdemo重命名为com.mynmae.mapdemo,地图就神奇地出现了。 是的,我失去了一个小时的search和尝试,它默默地拒绝了包名。