我正在制作一个 Android应用程序,我在其中使用mapviews.从pc上安装时,它们在设备上完美运行.但是当通过Android市场在设备中安装相同的版本时,地图不会加载.以下是logcat输出. 10-03 15:54:51.
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:在命令行中导航到包含密钥库文件的目录:
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< my-keystore-file>),而不是证书的MD5.它是您需要的证书的MD5.>在生成API密钥时登录Google,但帐户错误.您的地图API密钥和Android电子市场签名密钥必须属于同一个Google帐户.