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.keystore
和default.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了答案!
- 决定按照这些步骤https://developers.google.com/android/maps-api-signup并获得您的证书的MD5指纹;
- 在发展的时候,如果地图不显示,不要担心这个! 简单的解压缩APK使用安卓工具与第一步中使用的关键工具,并使用此APK文件安装在您的手机上,你会看到MapView
无论如何,在开发的时候,也许你没有看到MapView,但是这不是问题,不要担心这个! 简单的等待,当完成应用程序与您的密钥库构build,你会看到地图显示正确
对于试图从sdk extras构build地图示例的可怜的灵魂:只要我将包从com.example.mapdemo重命名为com.mynmae.mapdemo,地图就神奇地出现了。 是的,我失去了一个小时的search和尝试,它默默地拒绝了包名。