• 一问题描述
  • 二解决方法
  • 三更好的方式

一.问题描述

不显示百度地图目前我遇见了两种情况:
(1)开发的时候不显示百度地图,只显示网格;
(2)开发的时候会显示地图(模拟机or真机),打包成apk后安装到手机上却只显示网格不会显示地图,或者在手机上一开始显示地图,但是缩放后发现只是一个矩形框内的地图显示,而矩形框外的部分只显示网格;

二.解决方法

(1)针对第一种,在开发阶段都不会显示地图的原因,从以下几个方面排查:
之前的一篇博文里也详细记录了配置过程和问题解决的方法:点击查看,在这里只是将可能出现的环节再次列出来。

  • 网络
    手机是否连网了,低级错误,但是往往被我们忽视;
  • AK
    申请API_KEY的时候,是否正确填写了包名SHA1,包名和SHA1的获取,官网有教程。
    AK申请地址:http://lbsyun.baidu.com/apiconsole/key/create
    配置教程地址:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key
  • AndroidManifest中的配置
    比如API权限、API_KEY、以及uses-permission、meta-data的位置等等

(2)第二种问题也是自己刚发现的,明明在开发的时候可以显示地图(我用的真机),地图的各种监听事件等等都是可以的,但是自己打包生成apk,然后重新安装到手机上的时候,居然出现了只显示网格不显示地图;同时还出现过只显示一小部分地图,缩放后发现,地图不会更新,不会显示完整的地图。针对这两个情况,出现的原因都是一个:API_KEY不正确。可是,明明开发的时候就是ok的,为何打包后既不会了呢?那是因为SHA1签名已经改变了,至于为什么改变了,可能光知道SHA1是什么还不够。那么解决方案就出来了,利用apk的SHA1+包名重新申请AK。

- 获取新的SHA1
打包的时候会生成一个 自命名.jks文件,打包过程请点击查看,最主要的就是这个jks文件。然后在命令窗口进入到这个jks文件的目录,输入keytool -list -v -keystore 自命名.jks,于是就可以看到SHA1,然后用这个SHA1和包名去重新申请AK,将新的AK配置到AndroidManifest.xml中,参见下图。

然后重新打包生成apk,安装到手机上就可以了。

三.更好的方式

为什么有一个更好的方式呢?因为今天发现百度地图提供了一个二合一的AK生成方式:同时可输入发布SHA1和开发SHA1,这样生成了一个AK,既可用于开发也可用于发布,亲测完美。

所以我最后使用的将是二合一的AK。

更多相关文章

  1. 基于Android小巫新闻客户端开发---显示新闻详细内容UI设计
  2. 主页信号条显示的信号强度并不准确,教你看Android真实的信号强度
  3. MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏
  4. Android使用Google Map服务 - 根据GPS信息在地图上定位
  5. Android(安卓)TextView 判断文字内容是否超出显示省略号
  6. Android之Windows下生成动态库so并打包到APK中
  7. Skia深入分析9——延迟渲染和显示列表
  8. android 游戏:俄罗斯方块的小结
  9. android 图片下面显示文字

随机推荐

  1. Android中各种onTouch事件
  2. android之simpleAdaper应用
  3. Android跳转到系统Wifi界面的方式
  4. Android防止进程被第三方软件杀死
  5. android加载进度条
  6. Android(安卓)Studio Mac 下卸载与安装
  7. Android(安卓)划出一个半透明的PopupWind
  8. Android(安卓)获取几天后的时间
  9. android 4.3源码编译
  10. 关于 Linux Polkit 权限提升漏洞(CVE-202