Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >高德地图API INVALID_USER_SCODE问题以及keystore问题

高德地图API INVALID_USER_SCODE问题以及keystore问题

作者头像
fanfan
发布于 2022-05-07 05:42:47
发布于 2022-05-07 05:42:47
11.3K00
代码可运行
举报
文章被收录于专栏:编程思想之路编程思想之路
运行总次数:0
代码可运行

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

1,接入API时出现invalid_user_scode问题

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

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

运行时log信息如下

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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文件中忘记添加代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:

至此,问题完全解决,有任何疑问,请留言

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个key玩转第三方服务(微信支付、某某地图)
之前LZ写项目的时候,多少都会使用一些第三方,主要为地图相关,无论从百度地图还是高德地图来讲,都需要一个SHA1+包名去配置key,而这个key,就是使用地图的关键因素。
贺biubiu
2019/06/10
5760
Android 高德地图API(详细步骤+源码)一
为了丰富对地图、定位的了解,在写了百度、腾讯的地图定位之后,终于到了高德地图了。我个人平时日常使用最多的定位软件就是高德地图。所以这篇文章,就带你来初步了解使用。
晨曦_LLW
2021/02/20
8.5K8
Android 高德地图API(详细步骤+源码)一
安全篇 - 隐式配置 KeyStore 签名信息
还记得,在某司对接支付,Enmmm,微信支付的时候,申请时提交的是正式证书的信息,所以想测试,只能使用正式签名才可以。
贺biubiu
2019/06/11
9920
flutter常见问题【3】:Flutter 使用Android studio 打包生成apk
如果左下侧没有 terminal 命令行窗口,可以在项目根目录上右击=》Open in Terminal
sinnoo
2020/11/13
1.6K0
flutter常见问题【3】:Flutter 使用Android studio 打包生成apk
Android 天气APP(三十七)新版AS编译、更新镜像源、仓库源、修复部分BUG
  没想到我还会更新这个天气App的文章,起因是因为有读者运行源码后报错,然后上网找不到解决的办法,于是找到我,鉴于此,我写下原因和解决方法。
晨曦_LLW
2024/11/28
2900
Android 天气APP(三十七)新版AS编译、更新镜像源、仓库源、修复部分BUG
八、从华为HMS Core集成过程看密码学知识
  会让你输入包名,每个包名对应一个应用,在这个应用下会有相应的配置,不同的应用会有不同的配置,所以这里才让你输入包名。而且运行apk的时候,hms的sdk会根据你的包名去匹配后台该包名底下的配置,然后进行验证。
砖业洋__
2023/05/06
7840
八、从华为HMS Core集成过程看密码学知识
Flutter打包apk
这里我们用命令行生成一个.jks的文件。我们使用的是Android Studio自带的debug.keystore密钥库。
用户6094182
2019/08/23
3.2K0
Flutter打包apk
【手把手学习flutter】Flutter打Android包的基本配置和包体积优化策略
因为最近参加2020FEHackson,有个项目需要要快速上线,把打包过程和遇到的问题做个记录。
huofo
2022/03/17
2.2K0
【Flutter 专题】39 图解 Android 打包 APK 文件
和尚是搞 Android 的,曾经尝试过打包 APK 文件失败,由于种种原因暂停研究,今天重新学习一下如何打包 APK 。官网讲解的清楚明了,和尚在此基础上整理一下打包过程中遇到的问题。
阿策小和尚
2019/08/12
9820
【Flutter 专题】39 图解 Android 打包 APK 文件
在 Android 中如何优雅地配置私密信息
在实际的项目开发中,经常会用到一些第三方的 SDK ,而使用这些 SDK 基本上都是需要配置 APPKEY 或 APPSECRET 等信息。此外 APP 打包时需要 KEYSTORE , STOREPASSWORD 的信息。这些都是私密配置信息,不应该发布到 Github 或其它公共空间。
阳仔
2019/07/31
1.8K0
码云 Android apk 在线构建功能上线啦
duang duang duang …… 各位看官,开源中国码云 Android 项目构建新功能上线啦!! 码云支持的项目中, ant/maven/gradle的配置文件支持脚本。而每个人写出的构建脚本千变万化,因此码云对支持的项目设置做了一些规范。本次给大家带来的新功能内容如下: 一、码云Android项目构建注意事项 ant项目 build.xml必须位于项目根目录。 maven项目 pom.xml必须位于项目根目录。 gradle项目 由于gradle的配置灵活,我们做了一些规范,并且增加了一下机制来
码云Gitee
2018/03/29
2.2K0
码云 Android apk 在线构建功能上线啦
为你的APK进行数字签名
所有 Android包(APK)文件在部署之前都需要被数字签名,Android使用一个已有的密钥签发调试用的 APK。你可以使用 Java提供的 keytool命令来查看。
博文视点Broadview
2020/06/11
8380
Android必知必会-发布开源 Android 项目注意事项
版权声明:本文为[他叫自己Mr.张]的原创文章,转载请注明出处,否则禁止转载。 https://micro.blog.csdn.net/article/details/51933453
他叫自己MR.张
2019/07/01
7430
基于Jenkins + Docker 搭建 Android 持续集成平台
随着公司扩大和测试团队的引入,原有的本地打包已经无法满足需求,所以考虑搭建Android持续集成打包平台。因为我司前后端发版是通过Docker+Jenkins,所以就沿用它。
DevOps时代
2019/08/08
2K0
基于Jenkins + Docker 搭建 Android 持续集成平台
『Flutter』打包应用程序
经过上一篇文章, 给大家写了一个计算器的项目,接下来就是打包应用程序了,也就是说我们可以把这个项目打包成一个应用程序,然后安装到手机上使用。
杨不易呀
2024/02/01
7310
『Flutter』打包应用程序
Android studio生成签名导打包的方法
如果你已经有了签名文件.jsk那么就选择③导入文件,这时①中就是文件路径,④是keystore的密码,⑤是别名,⑥是文件的密码。
程思扬
2022/01/10
1.5K0
Android studio生成签名导打包的方法
Android开发实践小结
推荐的做法应该是在Androd项目中gradle.properties(如果没有则手动创建一个)文件中创建以下变量,这个文件是不会被版本控制系统提交的,所以不用担心密码泄露。
阳仔
2019/07/31
6720
Android开发实践小结
关于Gradle配置的小结
使用 Android Studio 来开发 Android 工程的过程中,接触 Gradle 是不可避免的,比如配置签名、引入依赖等。那么 Gradle 到底是什么东西呢? Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言 (DSL) 来声明项目设置,抛弃了基于 XML 的各种繁琐配置 (此定义来自于百度百科-_- !) 。啰里啰唆一堆,幸运的是,一般来说 Android 开发者只要会配置 Gradle 就可以了,并不需要深入了解。那么下面我们就来揭开 Gradle 的面纱吧。
俞其荣
2022/07/28
7200
关于Gradle配置的小结
使用VSCode 打包你的第一个flutter应用(安卓篇)
由于官网被墙,打包资料只能根据以往大神提供的经验摸索打包,但是在实际打包中还是会遇到各种各样的错。
青年码农
2020/10/13
3.1K0
使用VSCode 打包你的第一个flutter应用(安卓篇)
android 中获取sha1值的详细说明
我们在开发过程中,用到很多三方sdk中申请一些key值都需要我们提供一个sha1值,例如 百度地图  高德地图。
再见孙悟空_
2023/02/10
3.4K0
android 中获取sha1值的详细说明
相关推荐
一个key玩转第三方服务(微信支付、某某地图)
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验