今天这篇文章会给大家介绍三个问题:

1,接入API时出现invalid_user_scode问题

首先进行第一个大问题,接入高德地图API时出现invalid_user_scode问题

因为项目需要接入高德地图的API,在接入其它API时会出现类似问题,在进行定位的时候出现了下列问题

运行时log信息如下

可以看到,定位失败有两个原因:

1,错误代码为10,定位服务启动失败。

2,错误代码为7,key错误。

根据高德地图的官方使用文档的介绍,对相关问题进行处理

问题1:服务启动失败:检查清单配置文件Androidmanifest.xml,服务已经配置完成,如下

<service android:name="com.amap.api.location.APSService"/>

后来对比高德地图给的demo才发现,是因为少加了一个jar包,如下图中未添加蓝色选中的包

添加上之后,运行程序,进行定位操作,log信息如下:

由log所打印的信息,可以看出三点:

1,定位服务启动失败问题已解决,现已启动成功

2,key错误问题仍旧存在

3,调用定位方法时是每隔一小段时间便进行一次定位

接下来,需要解决问题2。

问题2:key错误,官方文档中说,请仔细检查key绑定sha1与签名的apk的sha1是否一致:

在解决该问题时发现我犯了两个不该犯的错误:

第一,在build.gradle文件中忘记添加代码:

android {
signingConfigs {
//调试版的keystore
debug {
storeFile file("keystore文件所在位置")
storePassword "你规定的密码"
keyAlias "在创建keystore时你所填写的alias"
keyPassword "你规定的密码"
}
//发布版的keystore
release {
storeFile file("keystore文件所用位置")
storePassword "你规定的密码"
keyAlias "在创建该keystore文件时你所写的alias"
keyPassword "你规定的密码"
}
}
}

第二,在申请key时,我的sha1填写格式错误,错误示范如下:

正确的填写格式如下:

到此,我的程序已经可以实现定位,如下图:

2,如何创建自己的keystore,以及如何修改发布版和测试版的keystore

现在讨论第二个大问题,如何创建keystore文件,以及如何去修改发布版和开发版的keystore:

以Androidstudio为例进行keystore文件的创建:

接下来:

然后,图中红线标注的地方,是必须要记住的 ,因为需要在程序里使用

完成以上步骤后,你的keystore文件就创建成功了,接下来,你需要在build.gradle文件中使用,文中已经交到了,不再赘述,对不同 的keystore文件做相应修改即可,但要记住当你的keystore文件修改时也就代表你程序的sha1将要发生变化,一定要记得在网上对你的应用进行配置更新

3,如何查看keystore文件的sha1安全码

第三个大问题,有了keystroe文件后,如何去查看所谓的sha1码呢?

需要借助cmd,(如果不知道如何打开cmd,以及jdk的配置,请自行百度,博主不再多说)

在cmd中输入如下命令:keytool -list -keystore <keystore位置>

然后输入密码,得到sha1:

高德地图API INVALID_USER_SCODE问题以及keystore问题的更多相关文章

  1. 高德地图api实现地址和经纬度的转换(python)

    利用高德地图web服务api实现地理/逆地址编码 api使用具体方法请查看官方文档 文档网址:http://lbs.amap.com/api/webservice/guide/api/georegeo ...

  2. 高德地图API应用

    高德地图官网:http://api.amap.com/javascript/ 输入关键字,搜索地址功能的网页: 1.引用远程Map Api(js)网址形式(注册后获取) 2.定义个<div> ...

  3. 【高德地图API】如何解决坐标转换,坐标偏移?

    http://bbs.amap.com/thread-18617-1-1.html#rd?sukey=cbbc36a2500a2e6c2b0b19115118ace519002ff3a52731f13 ...

  4. android 高德地图API 之 java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLibrary returned null错误

    错误场景: 运行android app时,在运行到调用高德地图API时,出现 “java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLi ...

  5. 高德地图API

    这周计划: 周一 早上 (高德地图API) 中午写(IFE PART ONE) 下午(高德地图API) 下班(IFE PART ONE)

  6. 【高德地图API】汇润做爱地图技术大揭秘

    原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...

  7. 【高德地图API】一句话搞定webmap(一)——轻地图组件

    原文:[高德地图API]一句话搞定webmap(一)——轻地图组件 摘要: 遥想当年,在APP中加入LBS元素相当困难:要刻苦学习java,要刻苦学习iOS开发,要刻苦学习javascript…… 而 ...

  8. 【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘

    原文:[高德地图API]从零开始学高德JS API(七)——定位方式大揭秘 摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为w ...

  9. 【高德地图API】从零开始学高德JS API(八)——地址解析与逆地址解析

    原文:[高德地图API]从零开始学高德JS API(八)——地址解析与逆地址解析 摘要:无论是百度LBS开放平台,还是高德LBS开放平台,其调用量最高的接口,必然是定位,其次就是地址解析了,又称为地理 ...

随机推荐

  1. 移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

    目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for w ...

  2. jQuery/javascript实现IP/Mask自动联想功能

    之前做一个云计算的项目,涉及到一个安全组自动联想的功能,思想是这样的: 安全组规则之间是可以相互引用的,也可以自己是自己手动输入的ip/mask,这时候可以加一个功能,实现securityGroupI ...

  3. C#好书盘点

    C#是学习asp.net和.NET Winform程序的基础,所以一定要学好.从00年C#出道到现在,7年过去了,C#的书出了许多,有不少好书. 1.<21天学通C# > 作者:作者:(美 ...

  4. Linux中的In命令

    ln是linux中一个非常重要命令.它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是: ln -s  源文件 目标文件    -s 是 symbolic的 ...

  5. 让Netty入门变得简单

    让Netty入门变得简单 https://mp.weixin.qq.com/s/MBnbLmCmFJo0QK9WNwXrXQ 如果先启动nettyClient就不会有nettyServer输出了: p ...

  6. 文件同步程序,Python和C写的DLL

    #coding:utf-8 from ctypes import * from FileCopy import * def GetFilePathList(FilePath): dll = CDLL( ...

  7. Android 自己主动化測试(3)&lt;monkeyrunner&gt; 依据ID查找对象&amp;touch&amp;type (python)

    我在之前的两篇文章中用java来实现过 Android 自己主动化測试(1)怎样安装和卸载一个应用(java).Android 自己主动化測试(2)依据ID查找对象(java). 可是本质上都是用mo ...

  8. GO!自制一款【不丑】的名片

    大概每一个人都有自己的名片.也见过不少名片. 我敢打赌,你常常认为很多名片"不咋地".尽管不是全部人都具备一定的审美眼光,但实际上每一个人都具备较高的"审丑"眼 ...

  9. CentOS 6.2下二进制安装 MySQL 5.6

    在CentOS 6.2上 二进制方式安装 MySQL5.6二进制包 可以参考这篇文章: http://www.cnblogs.com/xiaoit/p/3988640.html 一路配置下来很顺利.. ...

  10. Java中Math类的几个四舍五入方法的区别

    JAVA取整以及四舍五入 下面来介绍将小数值舍入为整数的几个方法:Math.ceil().Math.floor()和Math.round(). 这三个方法分别遵循下列舍入规则:Math.ceil()执 ...