打包apk的SHA1,与key的SHA1(这是多人开发的通病不同电脑共同开发一个app的常见错误之一)不一致。解决方法:
今天虽然离职了,但是今天遇到的是,当我在用高德地图开发的时候,在AndroidStudio中直接运行时,可以定位,但是当给app打包成apk文件安装到手机上时却不能定位, 这个问题原因就是申请高德key的时候填写的SHA1也就是指纹证书有问题。我们开发的时候应该都是按照高德开放平台上介绍的流程去申请的,这当然是没问题的,但是当直接打包安装apk的时候就有问题了,因为按照高德的流程申请到的指纹证书只针对本地开发环境存在的默认签名文件debug.keystore的指纹证书。
但是我们在开发一个apk发布在应用商店供别人下载时,需要我们自己对我们的app进行签名,并拿到签名文件,这个签名文件是我们自己apk的签名文件,和开发环境默认的签名文件不一样,指纹证书SHA1也不同。
所以当我们用自己的签名文件导出apk时,高德地图的key应该是我们的签名文件的指纹证书,如果还是用开发环境debug.keystore的SHA1申请的key,就会出现不显示地图的情况,正确的配置流程如下:
用管理员cmd来进入key所在的包内:
输入生成key时候的密码
找到SHA1:
去高德开发平台注册一个帐号
http://lbs.amap.com/
然后点击右上角控制台在里面创建新应用
然后添加新key
填信息
展开信息
获取key和填写key到AndroidManiFests.xml文件中
然后打包
然后运行就ok