flutter 集成高德地图
官方开发文档
https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project
1、在官网申请appkey
找到SHA1
windows系统用win+r输入cmd打开控制台
Mac系统用了Go2Shell插件可以直接打开Users/xxx用户目录
cd /Users/xxx用户目录下
直接输入cd .android
再输入keytool -list -v -keystore debug.keystore找到调试版的SHA1
发布版的SHA1是输入keytool -list -v -keystore apk得编译出来后才能找到,不然是找不到的
2、在flutter项目中集成高德sdk
在官方开放文档中有两种方法来集成,一种下载官方sdk直接复制粘贴进去,试验了一下感觉不是很方便,毕竟下次更新又要重新下载复制进去。所以下面是通过gradle来集成高德sdk的方法。其实文档中都有,我写下来就是为了方便查阅。
(1)在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址
allprojects {
repositories {
jcenter() // 或者 mavenCentral() }
}
(2)在主工程的build.gradle文件配置dependencies
根据项目需求添加SDK依赖。引入各个SDK功能最新版本, dependencies 配置方式如下:
SDK引入代码
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'
以3D的demo工程为例添加3d地图SDK、定位SDK、搜索功能,配置如下:
android {
defaultConfig {
ndk {
//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
}
}
}
compilefileTree(dir:'libs', include: ['*.jar'])
compile 'com.amap.api:3dmap:latest.integration' //3D地图so及jar
compile 'com.amap.api:location:latest.integration' //定位功能
compile 'com.amap.api:search:latest.integration' //搜索功能
}
注意:还有一种是指定版本的引入,但是会比较麻烦因为当不是最新版本以后还要调整过,还是以上的方式比较简易一点不用担心版本不是最新的。
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 包,会有冲突。