添加Geolocator包后Flutter应用无法运行如何解决?
Flutter Geolocator 运行报错解决方案
问题原因
最新版Geolocator依赖要求Android端compileSdkVersion最低为33,你当前项目android/app/build.gradle中配置的compileSdk版本低于该要求,因此触发编译报错。
解决步骤
- 第一步:修改build.gradle配置
打开android/app/build.gradle文件,调整compileSdk和targetSdk版本为33及以上,参考配置如下:android { // 将原有compileSdkVersion数值修改为33 compileSdkVersion 33 defaultConfig { // 同步修改targetSdkVersion为33,避免运行时兼容问题 targetSdkVersion 33 // 其余原有配置保持不变即可 } } - 第二步:补充运行时权限请求逻辑
仅在AndroidManifest中配置权限不足以获取位置,Android 6.0及以上系统需要动态申请位置权限,调整你的获取位置代码如下:void getLocation() async { // 先检查位置权限状态 LocationPermission permission = await Geolocator.checkPermission(); if (permission == LocationPermission.denied) { // 权限未授予,主动申请权限 permission = await Geolocator.requestPermission(); if (permission == LocationPermission.denied) { print("位置权限被用户拒绝,无法获取位置信息"); return; } } if (permission == LocationPermission.deniedForever) { print("位置权限被永久拒绝,请前往系统应用设置页手动开启权限"); return; } // 权限已授予,正常获取位置 Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.low); print(position); } - 第三步:清理缓存重新构建
执行以下命令清理项目缓存,重新拉取依赖后运行即可:flutter clean flutter pub get
内容的提问来源于stack exchange,提问作者Foody
相关产品推荐
相关产品推荐

