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


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

    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:

  • 相关阅读:
    移动应用专项测试
    MAC连接安卓手机通过adb指令安装apk
    Git GUI可视化操作教程
    nestjs中typeorm进行事物操作
    vue-element-admin 实现动态路由(从后台查询出菜单列表绑定侧边栏)
    el-form 表单校验
    vscode设置VUE eslint开发环境
    .netcore signalR 实时消息推送
    psexec局域网执行远程命令
    Asp.Net跨平台 Jexus 5.8.1 独立版
  • 原文地址:https://www.cnblogs.com/to-creat/p/5300177.html
Copyright © 2020-2023  润新知