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

使用flutter_ringtone_player报Android embedding过时错误如何解决

Flutter Android V2 Embedding 兼容报错解决方案

你遇到的报错是因为引入的flutter_ringtone_player: ^3.0.0仅适配了已废弃的Android V1 Embedding,而你使用的高版本Flutter默认使用V2 Embedding导致,可通过以下方案解决:

方案1:更换已适配V2 Embedding的同类型插件(推荐)

flutter_ringtone_player v3.0.0已停止维护,优先选择仍在迭代、且已完成V2适配的铃声播放类插件替换,可直接规避适配问题,无需修改额外代码。

方案2:手动迁移插件适配V2 Embedding(必须使用该版本时使用)

如果业务必须依赖该特定版本插件,可手动完成插件的V2适配,步骤如下:

  • 下载flutter_ringtone_player v3.0.0源码存放到项目根目录的third_party/flutter_ringtone_player文件夹下
  • 修改插件android/src/main/AndroidManifest.xml文件,将嵌入版本标识从1改为2:
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
    
  • 修改插件的Android端主类文件(FlutterRingtonePlayerPlugin.java或对应kotlin文件):
    删除旧的PluginRegistry.Registrar相关注册逻辑,改为实现FlutterPlugin接口,将原注册逻辑迁移到onAttachedToEngine生命周期方法中,同时实现onDetachedFromEngine方法做资源释放。
  • 修改项目pubspec.yaml依赖配置,改为指向本地修改后的插件:
    dependencies:
      flutter_ringtone_player:
        path: ./third_party/flutter_ringtone_player
    

方案3:临时开启旧版插件兼容(仅应急使用)

如果需要临时跑通流程,可在项目android/app/src/main/AndroidManifest.xml的<application>标签下添加兼容配置,临时支持V1插件运行:

<meta-data
    android:name="io.flutter.embedding.android.ENABLE_LEGACY_PLUGIN_SUPPORT"
    android:value="true" />

注意:该兼容配置会在后续更高版本Flutter中被移除,仅可作为临时解决方案,不建议长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:48:01