因为公司业务需要,领导要求使用百度定位这个Flutter 的库,以下介绍集成百度地图的相关步骤以及坑点 (不是一般的坑)。
一、集成Flutter 插件
-
下载百度地图的demo,找到demo的plugins文件夹,把整个文件夹拷贝到自己项目的根目录中
当然也可以自己创建文件夹,bdmap_location_flutter_plugin必须得有 导入后效果
-
找到Flutter项目的pubspec.yaml文件,添加定位配置
需要注意的是这个格式必须要对,避免产生不必要的空格之类的字符 - commond(ctrl) + s 或者点击package get,或者点击下载图片完成插件的集成。 145940.png
-
打开项目的ios项目 ---> 双击打开Runner.xcworkspace 文件
QQ20200813-150704.png
-
选中项目的Pods 然后右方会出现的targets子项目,然后再选中Build Phases --> Link Binary With Libraries 添加对应的库,一共有十个,少哪个都要自己手动加,添加的库参考手动部署定位SDK,部署过程根据官网步骤配置,问题不大
bdmap_location_flutter_plugin 子项目 注意手动添加BMKLocationKit.framework库 - 然后你就可以开心地进行在VSCODE中执行flutter run 命令,迎接坑的到来 QQ20200813-153750.png QQ20200813-153750.png QQ20200813-153841.png QQ20200813-153918.png
-
问题很长我就直接告诉如何处理了,英文好的可以一行一行看具体是什么意思,我的处理方式就是在项目中重新添加图下的两个库
这两个库必须,如果少了AdSuppert的话会报错,想知道错误可删掉自行体会 -
添加两个库之后问题就解决了,可以运行flutter run 看看效果,接下来更的地方来了,先看看运行后的问题
是不是很纠结,明早库都导入了居然提示没有找到对应的库头文件,请看下一张图 可以对比一下第5步的那个图,是不是发现少了些什么东西,就是之前导入的库全没了 -
库没了,只能老实重新再导入,再告诉读者一个坑,这些库一旦你修改了pubspec.yaml 文件,例如添加或者删除某些插件,那恭喜你,重新再导一次吧,或者尝试官方的自动导入(本人没试过)
- 问题总是一波三折,再次flutter run 之后,异常如期而至 意思是和UIKit 相关的,倒是好解决,直接看下图 就是重新添加Foundation.framework,把原来那个看着有点差异的同名库删掉
至些,恭喜你,百度定位已经集成好了
后面就是项目集成了,可以参考官方文档
网友评论