Android studio 百度地图开发(9)只显示网格不显示地图或者只显示一个部分地图

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

一.问题描述

不显示百度地图目前我遇见了两种情况:
(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中,参见下图。

Android studio 百度地图开发(9)只显示网格不显示地图或者只显示一个部分地图_第1张图片

Android studio 百度地图开发(9)只显示网格不显示地图或者只显示一个部分地图_第2张图片

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

三.更好的方式

为什么有一个更好的方式呢?因为今天发现百度地图提供了一个二合一的AK生成方式:同时可输入发布SHA1和开发SHA1,这样生成了一个AK,既可用于开发也可用于发布,亲测完美。
Android studio 百度地图开发(9)只显示网格不显示地图或者只显示一个部分地图_第3张图片

所以我最后使用的将是二合一的AK。
Android studio 百度地图开发(9)只显示网格不显示地图或者只显示一个部分地图_第4张图片

你可能感兴趣的:(android,android,百度地图,Studio)