安装flutter_mapbox_navigation-0.0.26时Android构建失败如何解决
报错根因
该问题为flutter_mapbox_navigation 0.0.26版本自身缺陷导致:其安卓侧
build.gradle脚本硬编码了固定版本的第三方依赖(geolocator 7.7.1、对应旧版path_provider)的本地pub缓存路径,与你项目实际引入的依赖版本不匹配,哪怕你移除了项目内的对应依赖,该包自身的构建逻辑依然会去查找对应路径,因此触发报错。
前置操作
所有方案执行前先执行以下命令清理本地缓存,避免残留配置影响:
flutter clean rm pubspec.lock rm -rf .dart_tool
可选解决方案
- 方案1(优先推荐):升级导航包版本
0.0.26为2022年发布的老旧版本,后续官方已修复硬编码依赖路径的问题,直接在pubspec.yaml中将flutter_mapbox_navigation的版本约束升级到最新稳定版,重新执行flutter pub get后构建即可。 - 方案2(无法升级版本时使用):强制对齐依赖版本
在pubspec.yaml中添加dependency_overrides节点,强制指定项目内geolocator、path_provider的版本与该包要求的版本匹配:
修改完成后执行dependency_overrides: geolocator: 7.7.1 path_provider: 2.0.11flutter pub get重新拉取依赖即可正常构建。 - 方案3(临时兼容使用):修改包构建脚本
找到报错路径下的flutter_mapbox_navigation-0.0.26/android/build.gradle文件,定位到31行附近的硬编码路径引用逻辑,删除路径校验相关代码,将对应依赖改为普通maven依赖引入,修改完成后重新构建即可。
内容的提问来源于stack exchange,提问作者Doing Things Occasionally
相关产品推荐
相关产品推荐

