Flutter集成MapMyIndia地图打开即崩溃,求版本兼容问题排查
问题排查与解决方案
核心原因
这个错误源于Google Play Services定位库的版本冲突:FusedLocationProviderClient在旧版本的定位库中是类,新版本里被调整为接口,mapmyIndia包依赖的旧版本定位库和你项目中其他依赖的新版本库产生了类型不匹配,导致运行时崩溃。
具体修复步骤
强制统一Google Play Services定位库版本
在Flutter项目的android/build.gradle文件中,找到allprojects下的subprojects块,添加版本强制配置,确保所有依赖使用相同的定位库版本:subprojects { project.configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-location:21.0.1' // 可替换为mapmyIndia文档推荐版本,或你项目中已使用的稳定版本 } } }检查并调整mapmyIndia包版本
查看pubspec.yaml中mapmyIndia包的版本,若版本过旧,尝试升级到官方最新稳定版(注意验证新版本是否适配你的Flutter SDK版本)。清理缓存并重建项目
执行以下命令彻底清理项目缓存后重新构建:flutter clean flutter pub get cd android && ./gradlew clean build cd .. && flutter run排查其他依赖的版本冲突
运行以下命令查看项目中所有依赖的定位库版本,确认是否存在多版本冲突:cd android && ./gradlew dependencies | grep play-services-location若输出显示多个不同版本,通过上述
resolutionStrategy.force配置统一版本即可。
内容的提问来源于stack exchange,提问作者user25376448
相关产品推荐
相关产品推荐

