You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行flutter pub get报错提示需迁移Android embedding v2如何解决

问题表现

执行flutter pub get命令时抛出如下错误:

The device_info_plus plugin requires your app to be migrated to the Android embedding v2. Follow the steps on the Android project migration guide and re-run this command.

已按官方迁移要求完成所有Android embedding v2相关配置调整、项目代码和依赖均更新到最新状态后,报错仍未消失,公开渠道无对应可行解决方案。

可行解决步骤

按优先级从高到低依次排查:

  • 校验manifest元数据配置(最高频漏项)
    打开android/app/src/main/AndroidManifest.xml,检查<application>标签内部是否存在如下配置项,缺失则直接补全:
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
    
    多数人迁移时仅调整了MainActivity代码,漏加该元数据是触发该报错的最常见原因。
  • 全量清理缓存避免误判
    旧的构建缓存、Pub依赖缓存、版本锁文件残留的旧校验标记会导致误报,按顺序执行操作清理:
    flutter clean
    
    手动删除项目根目录下的pubspec.lock文件,再删除Pub全局缓存目录下所有device_info_plus相关的缓存文件夹,最后重新执行flutter pub get即可。
  • 校验MainActivity代码正确性
    打开对应包路径下的MainActivity.kt(Java项目对应MainActivity.java),确认类继承的是io.flutter.embedding.android.FlutterActivity,而非旧版的io.flutter.app.FlutterActivity;同时删除文件里残留的旧版GeneratedPluginRegistrant手动注册代码,v2嵌入模式下插件注册为自动执行,残留旧版注册逻辑会导致嵌入版本校验失败。
  • 排查老旧依赖的兼容问题
    如果项目中存在其他未适配Android embedding v2的第三方插件,会导致整个项目的嵌入版本被判定为v1,触发该报错。执行flutter pub outdated命令检查所有依赖的版本状态,将停更时间超过2年、未适配Flutter 3.x版本的老旧插件替换为社区维护的适配版本,或直接移除无用的老旧依赖。
  • 临时规避方案
    以上步骤均无效时,可在pubspec.yaml中锁定device_info_plus到不强制校验嵌入版本的最后一个稳定版本:
    device_info_plus: 8.2.2
    
    锁定版本后暂时不要执行flutter pub upgrade升级该依赖,等项目内所有依赖完成v2适配后再尝试升级到最新版。

内容的提问来源于stack exchange,提问作者Tefa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 00:51:27