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示例:
Java示例:import io.flutter.embedding.android.FlutterActivity class MainActivity: FlutterActivity() { }import io.flutter.embedding.android.FlutterActivity; public class MainActivity extends FlutterActivity { } - 调整完成后重新执行
flutter clean,再运行项目即可消除警告
临时规避方案(不推荐长期使用)
如果业务场景强制要求使用旧版本插件无法升级,可暂时将android/build.gradle中的compileSdkVersion调低至32以下,该方案仅能临时规避警告,后续Flutter版本迭代后必然会出现编译故障,建议尽快完成适配。
内容的提问来源于stack exchange,提问作者Jawad Ali
相关产品推荐
相关产品推荐

