高德API接入安卓相关问题说明

在这里插入图片描述

高德API接入安卓相关问题说明

我们都在怀念过去,失去后我们才懂得珍惜,有些人或事早已经远去,可是还是会想起曾经拥有的岁月,会是一种喜悦,会是一种遗憾……

目前Android开发已经普遍使用Android Studio,开放平台相关的产品都需要使用KEY,生成KEY需要的签名文件的SHA1和app包名,具体的申请步骤官网有详细说明,这里不再赘述。但是现在还有好多开发者按照步骤申请key之后,打包之后仍然会出现鉴权失败,主要原因是签名文件的SHA1和申请key的签名文件不一致造成的,这里就主要介绍一下Android Studio配置签名文件和需要注意问题。

配置签名文件

方法一——使用Android Studio生成

1.打开 Android Studio,点击菜单栏的 Build 选项,然后选择 Generate Signed Bundle/APK。

image-20240709120605683

2.在弹出的窗口中,选择 APK,然后点击 Next 继续。

image-20240709120521246

3.点击 Create new… 按钮创建一个新的密钥库文件(Keystore File)。

image-20240709120647963

4.在弹出的窗口中,选择一个存储位置和文件名,然后设置一个密码用于保护密钥库文件。

image-20240709120705216

5.填写密钥库的详细信息,包括别名(Alias)、密码、有效期等。
6. 查看SHA1签名

生成keystore文件后,您可以使用以下命令获取SHA1签名:

keytool -list -v -keystore [your_keystore_name].keystore -alias [your_alias_name]

示例:

keytool -list -v -keystore my-release-key.keystore -alias my-key-alias

运行该命令后,您将看到类似以下输出:

Keystore type: JKS
Keystore provider: SUNYour keystore contains 1 entryAlias name: my-key-alias
Creation date: [date]
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=[Your Name], OU=[Your Organizational Unit], O=[Your Organization], L=[Your City], ST=[Your State], C=[Your Country Code]
Issuer: CN=[Your Name], OU=[Your Organizational Unit], O=[Your Organization], L=[Your City], ST=[Your State], C=[Your Country Code]
Serial number: [serial number]
Valid from: [start date] until: [end date]
Certificate fingerprints:MD5:  [your MD5 fingerprint]SHA1: [your SHA1 fingerprint]SHA256: [your SHA256 fingerprint]
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

在输出中找到SHA1指纹,并将其用于高德地图API令牌配置。

通过以上步骤,您可以生成签名文件并获取SHA1签名,用于配置高德地图API令牌,确保应用的正确发布和使用。

方法二——命令生成

1. 生成签名文件(keystore)

使用keytool命令生成签名文件。keytool是JDK自带的工具,用于生成和管理密钥对及证书。

执行以下命令生成签名文件:

keytool -genkey -v -keystore [your_keystore_name].keystore -alias [your_alias_name] -keyalg RSA -keysize 2048 -validity 10000

示例:

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

在运行该命令时,您将被提示输入以下信息:

  • Keystore密码: 为您的keystore设置一个密码。
  • 姓名与姓氏: 输入您的全名。
  • 组织单位名称: 输入您的组织单位名称,如部门或团队。
  • 组织名称: 输入您的公司或组织的名称。
  • 城市或地区名称: 输入您的城市或地区名称。
  • 省/市/自治区名称: 输入您的省份或州的名称。
  • 国家代码: 输入您的国家代码,如“CN”代表中国。
  • 确认信息: 确认输入的信息是否正确。
  • 密钥密码: 为您的密钥设置一个密码。如果与keystore密码相同,可以直接按回车。

完成这些步骤后,您的keystore文件将被生成。

2. 获取SHA1签名

生成keystore文件后,您可以使用以下命令获取SHA1签名:

keytool -list -v -keystore [your_keystore_name].keystore -alias [your_alias_name]

示例:

keytool -list -v -keystore my-release-key.keystore -alias my-key-alias

运行该命令后,您将看到类似以下输出:

Keystore type: JKS
Keystore provider: SUNYour keystore contains 1 entryAlias name: my-key-alias
Creation date: [date]
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=[Your Name], OU=[Your Organizational Unit], O=[Your Organization], L=[Your City], ST=[Your State], C=[Your Country Code]
Issuer: CN=[Your Name], OU=[Your Organizational Unit], O=[Your Organization], L=[Your City], ST=[Your State], C=[Your Country Code]
Serial number: [serial number]
Valid from: [start date] until: [end date]
Certificate fingerprints:MD5:  [your MD5 fingerprint]SHA1: [your SHA1 fingerprint]SHA256: [your SHA256 fingerprint]
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

在输出中找到SHA1指纹,并将其用于高德地图API令牌配置。

通过以上步骤,您可以生成签名文件并获取SHA1签名,用于配置高德地图API令牌,确保应用的正确发布和使用。

build.gradle配置签名文件

image-20240709121306768

在Android应用开发中,生成的签名文件(keystore)需要在Gradle构建文件中配置,以便在编译和打包应用时进行签名。以下是如何在build.gradle文件中配置签名文件的详细介绍:

配置签名文件(keystore)

1. 创建签名文件(keystore)

首先,确保您已经按照之前介绍的步骤生成了签名文件(keystore),并获取了相关信息(如keystore文件路径、storePassword、keyPassword和keyAlias)。

2. 配置build.gradle文件

在项目的build.gradle文件中,添加签名配置。通常,这些配置会放在android块中的signingConfigs块内。

以下是配置示例:

android {...signingConfigs {release {storeFile file('E:\\****nce\\********tendance.jks')storePassword '888888'keyPassword '888888'keyAlias 'key0'}}buildTypes {release {signingConfig signingConfigs.releaseminifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}

配置项详细介绍

  1. signingConfigs:

    • release: 这是签名配置的名称,您可以根据需要自定义。这里使用release表示发布版本的签名配置。
  2. storeFile:

    • file('E:\\****nce\\********tendance.jks'): 指定keystore文件的路径。在Windows系统中,路径使用反斜杠(\\)。
  3. storePassword:

    • '888888': keystore文件的密码。这个密码是在生成keystore文件时设置的。
  4. keyPassword:

    • '888888': 密钥的密码。这个密码是在生成密钥对时设置的。
  5. keyAlias:

    • 'key0': 密钥别名。在生成keystore文件时设置的别名。
  6. buildTypes:

    • release: 配置发布版本的构建类型。
    • signingConfig signingConfigs.release: 指定使用上面定义的release签名配置。
    • minifyEnabled false: 是否启用代码混淆,这里设置为false表示不启用。
    • proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro': 指定ProGuard配置文件,用于代码混淆。

应用签名配置

确保将签名配置应用到您的构建类型中,例如release版本。这样,Gradle在编译和打包发布版本时会使用指定的keystore文件进行签名。

通过以上步骤,您可以在build.gradle文件中正确配置签名文件,确保在编译和打包应用时使用正确的数字签名。这样可以确保应用在发布时符合安全和完整性要求,并且能够在配置了SHA1签名的高德地图API令牌环境中正常运行。

申请高德API

image-20240709121606165

要在高德地图平台上申请API Key,并确保应用能够正确使用高德地图的服务,可以按照以下步骤操作:

1. 注册和登录高德地图开发者平台

  • 访问高德地图开发者平台: 打开 高德地图开放平台.
  • 注册账号: 如果您没有账号,请点击注册并填写相关信息创建一个新账号。
  • 登录: 如果已经有账号,直接登录。

2. 创建应用

  • 进入开发者中心: 登录后,点击页面右上角的头像,选择“开发控制台”。
  • 选择应用管理: 在左侧导航栏中选择“应用管理”。
  • 创建应用: 点击“创建应用”按钮。
  • 填写应用信息: 在弹出的页面中,填写应用名称、选择应用类型(如iOS、Android、Web服务等),并填写相关信息。
  • 提交信息: 确认无误后,点击“确定”提交信息。

3. 获取API Key(密钥)

  • 进入应用详情页: 在应用管理页面中找到刚刚创建的应用,点击应用名称进入详情页。
  • 新增Key: 在应用详情页中找到“Key管理”,点击“新增Key”按钮。
  • 选择服务类型: 选择您需要的服务类型(如“定位SDK”、“地图SDK”等)。
  • 填写Key信息: 根据提示填写相关信息。
    • 平台类型: 选择Android、iOS或者其他。
    • 包名(Android): 填写您的应用包名。在项目的app模块中,找到并打开AndroidManifest.xml文件。包名通常在<manifest>标签中的package属性中定义。
    • SHA1(Android): 填写您的应用SHA1签名。
    • Bundle ID(iOS): 填写您的应用Bundle ID。

4. 配置包名和SHA1签名(Android应用)

对于Android应用,您需要在创建Key时填写正确的包名和SHA1签名。以下是获取SHA1签名的步骤:

  1. 打开终端或命令行:

    • 在Android Studio中打开终端,或者在操作系统的命令行工具中输入以下命令:
    keytool -list -v -keystore [your_keystore_path] -alias [your_alias_name]
    
  2. 执行命令:

    • 替换[your_keystore_path]为您生成的keystore文件路径,[your_alias_name]为您生成密钥对时设置的别名。
  3. 查看输出:

    • 执行命令后,您将看到类似以下的输出:
    Keystore type: JKS
    Keystore provider: SUNYour keystore contains 1 entryAlias name: key0
    Creation date: [date]
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=[Your Name], OU=[Your Organizational Unit], O=[Your Organization], L=[Your City], ST=[Your State], C=[Your Country Code]
    Issuer: CN=[Your Name], OU=[Your Organizational Unit], O=[Your Organization], L=[Your City], ST=[Your State], C=[Your Country Code]
    Serial number: [serial number]
    Valid from: [start date] until: [end date]
    Certificate fingerprints:MD5:  [your MD5 fingerprint]SHA1: [your SHA1 fingerprint]SHA256: [your SHA256 fingerprint]
    Signature algorithm name: SHA256withRSA
    Subject Public Key Algorithm: 2048-bit RSA key
    Version: 3
    
    • 在输出中找到SHA1指纹,并将其填写到高德地图开发者平台上的相应字段中。

5. 激活服务权限

  • 确认服务权限: 在应用详情页的“服务管理”中,确保您需要的服务(如定位服务、地图服务等)已启用。
  • 保存设置: 确认无误后,点击“保存”按钮。

6. 使用API Key

  • 在应用的代码中,使用获取的API Key进行配置。例如,在Android中,可以在AndroidManifest.xml中添加:

    <meta-dataandroid:name="com.amap.api.v2.apikey"android:value="您的API Key"/>
    

7. 测试和发布

  • 测试应用: 在应用中集成高德地图的功能后,进行测试,确保能够正常获取定位信息。
  • 发布应用: 完成测试后,可以将应用发布到应用市场。注意,发布时使用的包名和签名必须与高德地图平台上配置的一致。

高德地图API Key错误的排查方法

latitude=0.0#longitude=0.0#province=#coordType=GCJ02#city=#district=#cityCode=#adCode=#address=#country=#road=#poiName=#street=#streetNum=#aoiName=#poiid=#floor=#errorCode=7#errorInfo=KEY错误#locationDetail=auth fail:INVALID_USER_SCODE#SHA1AndPackage#03:3A:AB:E6:C1:EC:0A:7B:A6:F4:12:A3:81:10:C5:FB:93:43:44:0B:com.zhenqi.ningxiaattandance#gsid#033004090204172049148400000029730029110#csid#1ed166f6a0d24ec1901a9b022c734157#0701#description=#locationType=0#conScenario=0

当高德地图API返回KEY错误时,可以按照以下步骤进行排查:

1.检查Keystore文件:

  • 确认您当前的app使用的Keystore文件与您申请高德API Key时提供的SHA1值的Keystore文件是否一致。

2.检查meta-data配置:

  • 确认您的API Key在AndroidManifest.xml文件中的meta-data标签中是否正确配置,并且没有多余的空格或其他字符。
<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="您的API Key"/>

3.使用debug.keystore进行测试:

  • 您可以尝试使用debug.keystore的SHA1值申请一个API Key进行测试。获取debug.keystore的SHA1值的代码如下:
public static String sHA1(Context context) {try {PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);byte[] cert = info.signatures[0].toByteArray();MessageDigest md = MessageDigest.getInstance("SHA1");byte[] publicKey = md.digest(cert);StringBuffer hexString = new StringBuffer();for (int i = 0; i < publicKey.length; i++) {String appendString = Integer.toHexString(0xFF & publicKey[i]).toUpperCase(Locale.US);if (appendString.length() == 1)hexString.append("0");hexString.append(appendString);}return hexString.toString();} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;
}

4.检查包名:

  • 确认您在高德地图开发者平台上注册应用时填写的包名与您的应用实际包名是否一致。包名不一致是一个常见错误。在项目的app模块中,找到并打开AndroidManifest.xml文件。包名通常在<manifest>标签中的package属性中定义。

    包名也可以在 Gradle 配置文件中找到。在 Android 应用的 Gradle 构建脚本中,有一个名为 applicationId 的属性,它就是应用的包名。这个属性在 defaultConfig 块中进行定义和配置。

    例如,在 build.gradle 文件中可以找到如下所示的配置:

    android {...defaultConfig {applicationId "com.example.yourapp"minSdkVersion 21targetSdkVersion 31versionCode 1versionName "1.0"...}...
    }
    

    在这个例子中,applicationId 的值是 "com.example.yourapp",这就是应用的包名。这个值是在构建和打包应用时使用的唯一标识符。

    通过查看和确认这个 applicationId 属性,您可以确保在申请高德地图 API Key 时填写的包名与实际应用的包名一致,避免因包名不匹配而导致的 API Key 错误问题。

5.等待Key生效:

  • 刚申请的API Key需要等待大约15分钟才能生效,请耐心等待后再进行尝试。

通过以上步骤,您可以有效排查和解决高德地图API Key的错误问题。确保所有配置正确无误后,API Key即可正常使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程1-Opencv视觉处理之基本操作。OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它提供了各种视觉处理函数&#xff0c;并…

红酒与电影经典:那些银幕上的醉人瞬间

在光影交织的银幕世界里&#xff0c;红酒不仅是品味生活的象征&#xff0c;更是情感与故事的催化剂。每当夜幕降临&#xff0c;一杯色泽深邃的红酒&#xff0c;便能带我们走进那些令人陶醉的影片瞬间&#xff0c;感受不同的人生百态。今天&#xff0c;就让我们一起回味那些银幕…

告别付费 API!使用 Ollama 和 MATLAB 玩转本地大模型

在“当MATLAB遇见ChatGPT&#xff1f;”一文中介绍了名为MatGPT的插件&#xff0c;该插件通过调用ChatGPT的API&#xff0c;实现了在MATLAB中与Chat GPT对话的功能。 虽然Open AI的GPT3.5和GPT4o可以免费使用&#xff0c;但调用API却需要收费&#xff0c;因此使用MatGPT这类插件…

mybatis 延迟加载

MyBatis的延迟加载&#xff08;Lazy Loading&#xff09;是一种优化技术&#xff0c;用于在需要时才加载关联对象或集合&#xff0c;从而提高性能和效率。以下是对MyBatis延迟加载的详细介绍&#xff1a; 延迟加载的基本概念 延迟加载是指在第一次访问对象的属性时才加载该对象…

阿一课代表随堂分享:红队反向代理之使用frp搭建反向代理

frp反向代理 frp简介 frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件&#xff0c;支持 tcp, udp, http, https等协议。 frp 是一个可用于内网穿透的高性能的反向代理应用&#xff0c;分为服务端frps和客户端frpc&#xff0c;支持 tcp, udp, http, https 协议。详…

修改服务器挂载目录

由于我们的项目通常需要挂载一个大容量的数据盘来存储文件数据&#xff0c;所以我们每台服务器都需要一个默认的挂载目录来存放这些数据&#xff0c;但是由于我们的误操作&#xff0c;导致挂载目录名字建错了&#xff0c;这时候后端就读不到挂载目录了&#xff0c;那我们我们的…

Java面经知识点汇总版

Java面经知识点汇总版 算法 14. 最长公共前缀&#xff08;写出来即可&#xff09; Java 计算机基础 数据库 基础 SQL SELECT first_name, last_name, salary FROM employees WHERE department Sales AND salary > (SELECT AVG(salary)FROM employeesWHERE department Sal…

德语中含“Augen”的惯用语表达-柯桥小语种学习德语考级

在我们的德语学习过程中&#xff0c;除了词汇的记忆&#xff0c;另一项重要的记忆任务就是惯用语的背诵啦。要知道&#xff0c;德语中有大量的Redewendung&#xff0c;他们以其言简意赅的表达&#xff0c;在日常用语中备受青睐。上一期我们已经学习了部分含有“Hand”的惯用语&…

去中心化时代的到来:区块链如何重新定义权力和控制

随着区块链技术的迅猛发展&#xff0c;我们正逐步进入一个去中心化的新时代。区块链不仅仅是一种技术&#xff0c;更是一种理念&#xff0c;它通过去除中心化的权威和控制节点&#xff0c;重新定义了数据管理、交易验证和权力分配的方式。本文将深入探讨区块链如何在去中心化时…

成都欣丰洪泰文化传媒有限公司电商服务领航者

在当今数字化浪潮中&#xff0c;电商行业正以前所未有的速度蓬勃发展。作为这片蓝海中的佼佼者&#xff0c;成都欣丰洪泰文化传媒有限公司凭借其专业的电商服务能力和对市场的敏锐洞察力&#xff0c;成为众多品牌信赖的合作伙伴。今天&#xff0c;就让我们一起走进成都欣丰洪泰…

CC5利用链分析

分析版本 Commons Collections 3.2.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 CC6是在CC1 LazyMap利用链(引用)的基础上。 CC5和CC6相似都是CC1 LazyMap利用链(引用)的基础上&#xff0c;改变了到LazyMap的入口类。 CC6是用TiedMapEntry的hashCode方…

Pinia 实战指南:轻松驾驭前端状态管理

前言 本文讲解一下在前端开发中经常使用的一个状态管理工具Pinia Pinia 是 Vue 的专属状态管理库,很值得我们深入去学习一下 Pinia是什么&#xff1f; Pinia是专门为Vue.js应用程序设计的一个状态管理库 主要特点: 简单性: Pinia的设计目标是提高开发效率和用户体验,因此…

gen_circle_contour_xld 创建XLD轮廓对应于圆或圆弧。

gen_circle_contour_xld (Operator)创建XLD轮廓对应于圆或圆弧。 Signature 签名 gen_circle_contour_xld( : ContCircle : Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolution : ) Description 描述 Gen_circle_contour_xld创建一个或多个圆弧或闭合的圆。圆…

全志A527 T527 android13支持usb摄像头

1.前言 我们发现usb摄像头在A527 android13上面并不能正常使用,需要支持相关的摄像头。 2.系统节点查看 我们查看系统是否有相关的节点生成,发现/dev/video相关的节点已经生成了。并没有问题,拔插正常。 3.这里我们需要查看系统层是否支持相关的相机, 我们使用命令进行…

鹦鹉智能财税系统:代账公司的智能化升级之路

随着新公司法的颁布与实施&#xff0c;财税政策的不断更新&#xff0c;以及大数据、人工智能等新技术的广泛应用&#xff0c;企业老板对于财税合规&#xff0c;以及企业资金安全的需求日益增加。乐财业-鹦鹉智能财税系统从企业老板视角出发&#xff0c;在助力企业合规经营的前提…

电机控制杂谈——位置环到底该用什么调节器?

1.为什么位置环用P调节器尽可以实现无静差调节&#xff1f; 当时在学《运动控制》这门课程时&#xff0c;用的是陈伯时老师的教材。在介绍调节器的时候&#xff0c;教材中说到&#xff0c;P&#xff08;比例&#xff09;调节器会存在稳态误差&#xff0c;所以在转速环和电流环…

node使用express在服务器上创建接口,携带参数访问时返回参数

一、下载nodejs​​​​​​Node.js — 在任何地方运行 JavaScriptNode.js is a JavaScript runtime built on Chromes V8 JavaScript engine.https://nodejs.org/zh-cn 二、 安装Express 找一个文件夹&#xff0c;创建 mkdir myapp cd myapp三、初始化一个新的Node.js项目&…

OS Copilot:新手测评体验

文章目录 前言一、OS Copilot&#xff08;阿里云操作系统智能助手&#xff09;简介二、测评体验总结OS Copilot 产品体验评测OS Copilot 产品功能反馈 前言 本文简单分享一下自己使用OS Copilot测评体验。 一、OS Copilot&#xff08;阿里云操作系统智能助手&#xff09;简介 …

linux驱动应用开发就业前景如何 ?

Linux驱动应用开发的就业前景可以说是非常广阔和有吸引力的&#xff0c;特别是随着物联网&#xff08;IoT&#xff09;、嵌入式系统、云计算和大数据等技术的迅速发展。我收集归类了一份嵌入式学习包&#xff0c;对于新手而言简直不要太棒&#xff0c;里面包括了新手各个时期的…

zerotier-one自建根服务器方法五

一、简介 前面几篇文章已经写完了自己建立服务器的方法&#xff0c;今天写一下我在使用过程中遇到的问题和解决方法。 二、准备工作 准备一个有公网IP的云主机。 要稳定性、安全性、不差钱的可以使用阿里、腾讯等大厂的云服务器。 本人穷屌丝一枚&#xff0c;所以我用的是免…