Flutter添加geolocator依赖后Android模拟器无法启动求助
解决Flutter中geolocator 12.0.0依赖导致Android模拟器启动失败的问题
检查Android Gradle插件与Kotlin版本兼容性
geolocator 12.x对Kotlin版本和Android Gradle插件有特定要求,不要直接升级到Kotlin 2.0.0,该版本与多数Android Gradle插件版本兼容性差。建议:
- 打开项目根目录下的
build.gradle(项目级),将ext.kotlin_version设置为1.9.20(geolocator 12.x推荐的稳定版本) - 确保
com.android.tools.build:gradle版本至少为7.4.0,示例配置:
buildscript { ext.kotlin_version = '1.9.20' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
补全权限配置
geolocator 12.x需要完整的权限支持,确保android/app/src/main/AndroidManifest.xml中添加以下权限:
<!-- 基础定位权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- Android 10+ 后台定位权限(按需添加) --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- 网络定位辅助权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
清理缓存并重建项目
缓存冲突可能导致启动失败,执行以下操作:
- 运行
flutter clean清理项目缓存 - 运行
flutter pub get重新拉取依赖 - 关闭IDE,删除项目根目录下的
.gradle和android/.gradle文件夹 - 重启IDE后重新编译运行
检查模拟器配置
确保模拟器满足以下条件:
- 模拟器Android版本不低于API 23(Android 6.0),geolocator 12.x对低版本系统支持有限
- 在模拟器扩展面板(Extended Controls)的Location选项中,设置一个模拟位置
- 若使用带Google Play的镜像,确保Google Play服务已更新
临时降级geolocator版本
若以上方法无效,可尝试降级到稳定旧版本,修改pubspec.yaml:
dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.6 geolocator: ^11.0.0
执行flutter pub get后重新运行项目。
内容的提问来源于stack exchange,提问作者Just AMAZING Cloud
相关产品推荐
相关产品推荐

