如何更新Flutter依赖解决Android embedding废弃报错问题
错误:
插件 `admob_flutter、flutter_ringtone_player` 使用了已废弃的Android embedding版本。 为避免意外运行时故障或未来的构建失败,请尝试查看这些插件是否支持Android V2 embedding。由于Flutter未来版本会移除这些废弃API,若插件不支持建议移除相关插件。 如果您是插件作者,可查看将插件迁移到V2 embedding的官方文档。
解决方案
执行flutter pub upgrade系列命令无法解决问题的核心原因是:admob_flutter、flutter_ringtone_player两个第三方插件均已停止维护,官方从未发布适配Android V2 embedding的版本,不存在可升级的兼容版本。你可以按照以下优先级处理:
- 方案1:替换为维护中的兼容插件(推荐长期使用)
- Admob相关功能替换为谷歌官方维护的
google_mobile_adsSDK,功能完全覆盖admob_flutter,且持续适配最新Flutter版本与Android规范 - 系统铃声播放功能替换为
flutter_ringtone_manager或audioplayers实现,两者均已完成Android V2 embedding适配
插件替换完成后依次执行flutter clean、flutter pub get,重新构建项目即可消除报错。
- Admob相关功能替换为谷歌官方维护的
- 方案2:临时屏蔽报错(仅适合应急过渡,不建议长期使用)
若暂时没有精力替换插件,可在android/app/build.gradle的android代码块中添加如下配置,直接屏蔽该类废弃警告:
注意该方案仅隐藏报错提示,Flutter后续新版本移除V1 embedding相关API后,项目仍然会出现构建失败问题。lintOptions { disable 'DeprecatedPlugin' }
内容的提问来源于stack exchange,提问作者Mr. Dandomi
相关产品推荐
相关产品推荐

