1.获取Key
申请 Key:
一、创建新应用
进入控制台,创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。
二、添加新Key
在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次输入应用名名称,选择绑定的服务为“Android平台SDK”,输入发布版安全码 SHA1、调试版安全码 SHA1、以及 Package,如下图所示:
需要注意的是: 1个KEY只能用于一个应用(多渠道安装包属于多个应用),1个Key在多个应用上使用会出现服务调用失败。
在阅读完高德地图API服务条款后,勾选此选项,点击“提交”,完成 Key 的申请,此时您可以在所创建的应用下面看到刚申请的 Key 了。
1.如何获取 SHA1
调试版本(debug)和发布版本(release)下的 SHA1 值是不同的,发布 apk 时需要根据发布 apk 对应的 keystore 重新配置 Key。
获取调试版本 SHA1 需要根据不同的开发工具,分别参考 通过Eclipse获取SHA1 和 通过Android Studio获取SHA1。
获取发布版本下 SHA1 的方法请参考 使用 keytool(jdk自带工具)获取SHA1。
2.通过Android Studio获取SHA1
第一步、打开 Android Studio 的 Terminal 工具。
第二步、输入命令:keytool -v -list -keystore keystore文件路径。
第三步、输入 Keystore 密码
3.使用 keytool(jdk自带工具)获取 SHA1
1.运行进入控制台
2、在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。
3.继续在控制台输入命令。
调试版本使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore。 发布版本使用 apk 对应的 keystore,命令为:keytool -list -v -keystore apk 的 keystore。
如下所示:
提示输入密钥库密码,开发模式默认密码是 android,发布模式的密码是为 apk 的 keystore 设置的密码。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 Sha1 值,如下图所示:
[图片上传中...(image-b3dd13-1561279068016-0)]
说明:keystore 文件为 Android 签名证书文件。
三、创建工程
通过拷贝添加SDK
1、添加 jar 文件:
将下载的地图 SDK 的 jar包复制到工程(此处截图以官方示例Demo为例子)的 libs 目录下,如果有老版本 jar 包在其中,请删除。如图所示:
2、添加 so 库:
说明:3D地图才需要添加so库,2D地图无需这一步骤。
保持project查看方式,以下介绍两种导入so文件的方法。
方法一:
使用默认配置,不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录即可。如图所示:
方法二:
使用自定义配置,将下载文件的 armeabi 文件夹复制到 libs 目录,如果有这个目录,请将下载的 so 库复制到这个目录,然后打开build.gradle,找到 sourceSets 标签,在里面增加一项配置,如图所示:
通过Gradle集成SDK
1、在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址
Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。Project的build.gradle文件在Project目录中位置如图所示:
配置如下:
Java
allprojects {
repositories {
jcenter() // 或者 mavenCentral()
}
}
2、在主工程的build.gradle文件配置dependencies
根据项目需求添加SDK依赖。引入各个SDK功能最新版本, dependencies 配置方式如下:
3D地图 compile 'com.amap.api:3dmap:latest.integration'
2D地图 compile 'com.amap.api:map2d:latest.integration'
导航 compile 'com.amap.api:navi-3dmap:latest.integration'
搜索 compile 'com.amap.api:search:latest.integration'
定位 compile 'com.amap.api:location:latest.integration'
主工程的build.gradle文件在Project目录中位置:
[图片上传中...(image-677f50-1561280876332-0)]
以3D的demo工程为例添加3d地图SDK、定位SDK、搜索功能,配置如下:
Java
android {
defaultConfig {
ndk {
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//3D地图so及jar
compile 'com.amap.api:3dmap:latest.integration'
//定位功能
compile 'com.amap.api:location:latest.integration'
//搜索功能
compile 'com.amap.api:search:latest.integration'
}
以上为引入最新版本的SDK,推荐这种方式。如需引入指定版本SDK(所有SDK版本号均与官网发版一致)如下:
Java
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.amap.api:3dmap:5.0.0'
compile 'com.amap.api:location:3.3.0'
compile 'com.amap.api:search:5.0.0'
}
注意:
1、3D地图 SDK 和导航 SDK,5.0.0 版本以后全面支持多平台 so 库(armeabi、armeabi-v7a、arm64-v8a、x86、x86_64),开发者可以根据需要选择。同时还需要注意的是:如果您涉及到新旧版本更替请移除旧版本的 so 库之后替换新版本 so 库到工程中。
2、navi导航SDK 5.0.0以后版本包含了3D地图SDK,所以请不要同时引入 map3d 和 navi SDK。
3、如果build失败提示com.amap.api:XXX:X.X.X 找不到,请确认拼写及版本号是否正确,如果访问不到jcenter可以切换为maven仓库尝试一下。
4、依照上述方法引入 SDK 以后,不需要在libs文件夹下导入对应SDK的 so 和 jar 包,会有冲突。
以上所有的内容均来自官网 (做记录使用)