使用just_audio在Android 13(API33)无法运行Flutter应用求助
解决Android API 33下audio_service 0.18.4编译错误问题
问题场景
使用just_audio插件,Dart版本2.18.0、Flutter版本3.3.0,目标Android API 33时出现如下编译错误:
C:\src\flutter.pub-cache\hosted\pub.dartlang.org\audio_service-0.18.4\android\src\main\java\com\ryanheise\audioservice\AudioService.java:312: warning: [deprecation] stopForeground(boolean) in Service has been deprecated stopForeground(!config.androidResumeOnClick); ^ C:\src\flutter.pub-cache\hosted\pub.dartlang.org\audio_service-0.18.4\android\src\main\java\com\ryanheise\audioservice\AudioService.java:586: warning: [deprecation] stopForeground(boolean) in Service has been deprecated stopForeground(false); ^ C:\src\flutter.pub-cache\hosted\pub.dartlang.org\audio_service-0.18.4\android\src\main\java\com\ryanheise\audioservice\AudioService.java:795: warning: [deprecation] get(String) in BaseBundle has been deprecated final KeyEvent event = (KeyEvent)mediaButtonEvent.getExtras().get(Intent.EXTRA_KEY_EVENT); ^ error: warnings found and -Werror specified C:\src\flutter.pub-cache\hosted\pub.dartlang.org\audio_service-0.18.4\android\src\main\java\com\ryanheise\audioservice\AudioServicePlugin.java:1142: warning: [deprecation] get(String) in BaseBundle has been deprecated Object value = bundle.get(key);
问题原因
Android API 33弃用了stopForeground(boolean)和BaseBundle.get(String)方法,而audio_service 0.18.4版本未适配这些API变更。同时Flutter默认将编译警告视为错误(-Werror),导致警告触发编译失败。
解决方案
方案1:升级audio_service到兼容版本
这是最彻底的解决方式,新版audio_service已经适配了Android API 33的要求:
- 打开项目根目录的
pubspec.yaml文件,找到audio_service依赖项 - 将版本号改为最新稳定版(比如
^0.19.0及以上,可根据pub上的最新版本调整) - 执行命令更新依赖:
flutter pub upgrade
方案2:临时禁用警告转错误(不推荐长期使用)
如果暂时无法升级插件,可以修改Android项目配置,让编译忽略弃用警告:
- 打开
android/app/build.gradle文件 - 在
android代码块中添加lintOptions配置:
android { // ...其他已有配置 lintOptions { disable 'DeprecatedApi' abortOnError false } }
此方法仅作为临时 workaround,长期来看仍需升级插件以保证兼容性。
方案3:确认just_audio与audio_service版本兼容
升级时需确保just_audio和audio_service版本匹配,可直接在pubspec.yaml中使用版本范围让pub自动处理兼容:
just_audio: ^0.9.34 # 替换为你使用的just_audio版本 audio_service: ^0.19.1 # 替换为最新兼容版本
内容的提问来源于stack exchange,提问作者niaz muhammad
相关产品推荐
相关产品推荐

