升级Flutter到2.5.3后出现Android V2 embedding相关插件报错与构建失败问题
Flutter 2.5.3 升级后运行失败解决方案
1. 第三方插件Android嵌入版本不兼容报错修复
该报错是因为Flutter 2.5开始已全面弃用Android V1嵌入,列出的7个插件当前使用的是已废弃的V1嵌入标准,修复步骤:
- 逐个升级
flutter_custom_dialog、flutter_webview_plugin、libphonenumber、permission、shared_preferences、simple_rsa、url_launcher到最新兼容版本,修改pubspec.yaml中对应依赖版本后执行flutter pub get - 若部分插件已停止维护无V2适配版本,替换为同类仍在迭代的替代插件:比如
flutter_webview_plugin可替换为官方维护的webview_flutter,旧permission插件替换为permission_handler - 检查本地安卓项目配置:打开android/app/src/main/AndroidManifest.xml,在application标签下确认已配置
android:name="${applicationName}"属性,删除旧的V1嵌入相关自定义application配置
2. MethodChannel类找不到setMockMethodCallHandler方法报错修复
该报错是因为Flutter 2.5版本已将该Mock方法从MethodChannel类迁移到了测试工具类下:
- 若该代码是自行编写的测试用Mock逻辑,导入flutter_test依赖后,将调用逻辑替换为
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, 回调方法)即可 - 若该代码来自第三方依赖,升级对应依赖到适配Flutter 2.5的版本即可
3. Gradle构建失败报错修复
针对编译阶段返回非零退出值的问题,按以下步骤排查:
- 先清理项目缓存:依次执行
flutter clean、flutter pub get,之后重新尝试运行 - 确认安卓Gradle版本适配:Flutter 2.5.3要求Android Gradle插件版本不低于7.0,对应gradle wrapper版本不低于7.0.2,分别修改android/build.gradle中的插件版本号、android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl地址的版本号即可
- 若仍无法解决,执行
flutter run -v运行项目,可获取完整的运行日志定位具体错误点
内容的提问来源于stack exchange,提问作者mideveloper
相关产品推荐
相关产品推荐

