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

使用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的要求:

  1. 打开项目根目录的pubspec.yaml文件,找到audio_service依赖项
  2. 将版本号改为最新稳定版(比如^0.19.0及以上,可根据pub上的最新版本调整)
  3. 执行命令更新依赖:
flutter pub upgrade

方案2:临时禁用警告转错误(不推荐长期使用)

如果暂时无法升级插件,可以修改Android项目配置,让编译忽略弃用警告:

  1. 打开android/app/build.gradle文件
  2. 在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:10:33