Flutter添加audio_service和just_audio后编译失败::audio_session任务执行出错
解决Flutter引入audio_service/just_audio后的Java版本编译错误
错误原因
你遇到的问题是因为audio_session(被audio_service和just_audio间接依赖)的Gradle配置使用了已过时的Java 8作为编译版本,而你的项目Gradle配置开启了-Werror,把编译警告直接当成错误处理,导致编译失败。
解决方案
方案1:统一项目Java编译版本并禁用警告转错误
打开项目根目录下的android/build.gradle文件,修改android块内容:
android { compileOptions { // 替换为你项目兼容的Java版本,比如11或17 sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } lintOptions { // 禁止将警告视为错误中断编译 abortOnError false } }
方案2:单独修复audio_session模块的编译配置
如果方案1无效,可以针对audio_session模块单独设置:
在android/build.gradle中添加subprojects块:
subprojects { if (name == 'audio_session') { android { compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } tasks.withType(JavaCompile) { // 忽略Java版本过时的警告 options.compilerArgs << "-Xlint:-options" } } } }
方案3:更新依赖到最新版本
检查并升级audio_service和just_audio到最新版本,新版本可能已经修复了Java版本兼容问题:
修改pubspec.yaml中的依赖:
dependencies: audio_service: ^0.18.11 # 替换为实际最新版 just_audio: ^0.9.34 # 替换为实际最新版
操作步骤
- 保存修改后的配置文件
- 执行命令清理缓存:
flutter clean - 重新编译运行:
flutter run
内容的提问来源于stack exchange,提问作者B Dev
相关产品推荐
相关产品推荐

