运行Clima Flutter天气App时遇MissingPluginException错误求助
解决Clima-Flutter项目中Geolocator旧版本的Android嵌入兼容问题
你的问题核心是geolocator: ^3.0.1依赖旧版Android V1嵌入框架,和当前Flutter默认的V2嵌入不兼容,导致插件废弃警告、MissingPluginException,以及依赖冲突引发的编译超时。以下是针对性解决步骤:
1. 升级核心插件到兼容V2嵌入的版本
打开项目根目录的pubspec.yaml,替换旧版本依赖为最新稳定版(确保和项目其他依赖兼容):
geolocator: ^11.0.0 permission_handler: ^11.0.0 # 若项目用到google_api_availability,同步升级到最新兼容版
执行命令更新依赖:
flutter pub get
如果出现依赖冲突,执行flutter pub upgrade强制升级,或调整冲突依赖的版本限制。
2. 配置Android V2嵌入环境
- 打开
android/app/src/main/AndroidManifest.xml,添加V2嵌入标识和必要权限:<application ...> <!-- 声明使用V2嵌入 --> <meta-data android:name="flutterEmbedding" android:value="2" /> <!-- 添加位置权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- Android 12+ 需额外添加 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> </application> - 打开
android/app/build.gradle,升级编译目标版本:android { compileSdkVersion 33 defaultConfig { targetSdkVersion 33 // 保留原有其他配置 } }
3. 修复MissingPluginException
- 执行清理命令清除缓存:
flutter clean - 删除
android/.gradle、android/app/build目录,重新执行flutter pub get和flutter run,确保插件原生代码正确编译。
4. 解决编译超时问题
编译超时多因旧插件依赖的仓库速度慢或gradle版本不兼容:
- 修改
android/build.gradle的仓库配置为国内镜像加速:buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } mavenCentral() } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } mavenCentral() } } - 打开
android/gradle/wrapper/gradle-wrapper.properties,使用Flutter推荐的gradle版本(如Flutter 3.16+对应gradle 8.0+):distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
5. 适配新版本API
旧版Geolocator的API和新版本差异较大,需调整项目代码:
- 位置获取:将
Geolocator().getCurrentPosition()替换为Geolocator.getCurrentPosition() - 权限检查:将
PermissionHandler().checkPermissionStatus()替换为Permission.location.status(基于最新permission_handler API) - 其他API变化参考新版本插件的官方文档调整。
内容的提问来源于stack exchange,提问作者Aditi Gawande
相关产品推荐
相关产品推荐

