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

Flutter添加audioplayers包报错:插件使用已弃用的Android embedding

插件audioplayers、path_provider使用了已弃用版本的Android embedding。为避免出现意外运行时故障或后续构建失败,请先确认这些插件是否支持Android V2 embedding。若不支持建议移除相关插件,因为Flutter未来版本将移除这些已弃用API。

解决方案

1. 优先升级插件版本

这个是最简单且最推荐的解决方案,audioplayers和path_provider均为官方生态维护的主流插件,早已完成Android V2 embedding适配,你触发报错是因为使用的插件版本过旧:

  • 打开项目根目录下的pubspec.yaml文件,找到dependencies模块下的audioplayers和path_provider声明,将版本号替换为当前最新稳定版
  • 终端执行flutter pub upgrade拉取对应版本
  • 执行flutter clean清除历史构建缓存,重新运行项目即可解决绝大多数场景的报错

2. 调整项目端Android embedding配置

如果升级插件后仍有报错,说明你的本地Flutter项目本身仍采用已废弃的V1 embedding配置,需手动调整:

  • 打开android/app/src/main/AndroidManifest.xml文件
    • 将<application>标签的android:name属性值修改为${applicationName}(如果原本值为io.flutter.app.FlutterApplication的话)
    • 在启动页<activity>标签内添加如下元数据声明:
      <meta-data
          android:name="flutterEmbedding"
          android:value="2" />
      
  • 打开android/app/src/main/下的入口Activity文件(Kotlin对应MainActivity.kt,Java对应MainActivity.java),修改父类导入路径为V2 embedding的包:
    Kotlin示例:
    import io.flutter.embedding.android.FlutterActivity
    
    class MainActivity: FlutterActivity() {
    }
    
    Java示例:
    import io.flutter.embedding.android.FlutterActivity;
    
    public class MainActivity extends FlutterActivity {
    }
    
  • 调整完成后重新执行flutter clean,再运行项目即可消除警告

临时规避方案(不推荐长期使用)

如果业务场景强制要求使用旧版本插件无法升级,可暂时将android/build.gradle中的compileSdkVersion调低至32以下,该方案仅能临时规避警告,后续Flutter版本迭代后必然会出现编译故障,建议尽快完成适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:45:04