执行flutter run时Flutter location包的Java类无法找到的问题求助
问题详情
- 本地连接移动设备后执行
flutter run,项目运行一段时间后崩溃 - 核心报错信息:
/.pub-cache/hosted/pub.dartlang.org/location-4.4.0/android/src/main/java/com/lyokone/location/MethodCallHandlerImpl.java:21: error: cannot find
symbol
[ ] private FlutterLocationService locationService;
[ ] ^
[ ] symbol: class FlutterLocationService
[ ] location: class MethodCallHandlerImpl
- 问题范围:location-4.4.0文件夹内多数类均存在相同的找不到依赖类问题
- 已尝试无效操作:删除该文件夹重装依赖、在VSCode/终端分别执行命令、清理Flutter缓存及pub-cache
可行解决方案尝试
升级location包版本:location-4.4.0为旧版本,存在编译兼容性问题。修改
pubspec.yaml中的依赖版本为最新稳定版,例如:dependencies: location: ^6.0.0 # 替换为当前最新稳定版本执行
flutter pub get重新拉取依赖。检查Android SDK版本兼容性:打开项目
android/app/build.gradle,确认compileSdkVersion、targetSdkVersion与location包要求匹配(新版本location通常要求compileSdkVersion 33+)。彻底清理构建缓存:执行以下命令重置构建环境:
cd android ./gradlew clean cd .. flutter clean flutter pub get flutter run排查依赖冲突:用
flutter pub deps查看依赖树,确认是否有其他包与location-4.4.0存在依赖冲突,导致类文件缺失。若有冲突,调整对应包版本或排除冲突依赖。手动修复源码(临时方案):若暂时无法升级版本,检查location-4.4.0的Android源码目录,确认
FlutterLocationService类是否存在。若缺失,从该包官方仓库对应版本下载完整源码替换本地pub-cache中的文件。
内容的提问来源于stack exchange,提问作者user6337937

