iOS
编译推荐使用Xcode
进行;Android
编译推荐使用Android Stuido
进行
- 下载源码后,使用
Android studio
打开项目:File->Open->选择amap_map_fluttify/example
. - 等待
Android Studio
索引完毕,找到pubspec.yaml
文件,点击Packages get
,等待执行完毕 - 等到此 Flutter 项目中 Dart
代码不再报错了就能分别编译
iOS
和Android
了
- 使用
Android Studio
打开Android
项目:File->Open->选择amap_map_fluttify/example/android
- 等待 Gradle 同步
同步过程中可能遇到各种问题,例如高德地图库中的各种类重复,此时Clean
一下 Android
项目,然后最好再Invalidate Caches\Restart
,基本就能解决了。 如果还不行,找到
Gradle
缓存文件夹,我自己是/Users/{name}/.gradle/caches/modules-2/files-2.1/
,找到
console
中报错的类的包名,以高德为例,com.amap.api,进入此包名文件夹,检查是否有多个版本的缓存,多余的资源等,如果有就删除没有被引用的.
如果还是有问题,找到 flutter 的 pub-caches
文件夹,我自己是/Users/{name}/.pub-cache/hosted/pub.flutter-io.cn
,在里面搜索无法通过编译的类/插件/packages的名称,会发现可能存在多个版本的。
amap_map_fluttify
的fluttify
引擎更新,amap_map_fluttify
的版本抬升等,都会有较新的版本被同步下来,此时可以适当删除非当前所使用的版本包.
再次回到Android
项目同步即可,一般都能通过编译并且能正常打包.
- 使用
Xcode
打开ios
项目 - 连接真机
- 左边视图切换到
Project navigator
下,点击Runner(如果没有修改名称的话)
,点击TARGETS
下的Runner
,选择Signing & Capabilities
,点击All
,修改Bundle Identifier
,然后重新编译
编译过程中可能会遇到一些错误,就目前来看这些错误带入Google
都能得到解答(我不是 iOSer😖)
方案1. 注释掉ios工程的Podfile内的use_frameworks!
.
方案2. 参考 手动添加bundle到工程, 把AMap.bundle
加入到主工程中.
Swift工程集成时, 报The 'Pods-Runner' target has transitive dependencies that include statically linked binaries
方案1. 注释掉ios工程的Podfile内的use_frameworks!
.
方案2. 重新创建项目, 并选择objc.
集成最新版本时, 报Because run depends on xxx_fluttify x.x.x which doesn't match any versions, version solving failed.
方案1: 在命令行运行flutter packages upgrade; flutter packages get
, 而不是使用ide获取依赖.
方案2: 去掉国内镜像换成官方源, 即注释掉环境变量
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
方案3: 等待国内镜像同步最新版本.
使用真机调试.
看README提到的Info.plist
配置.
- 检查申请的高德key是否正确
- 检查key是否配置在
<application>
标签下, 有的人是配置到<activity>
下了, 导致SDK没有取到值