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

Flutter Release模式下音频无法播放问题求助

Flutter 3.7.8 Release模式下推送通知音频提醒失效,报Dart_LookupLibrary错误

我的Flutter应用升级到3.7.8后出现以下问题:

  • Debug模式下,收到推送通知时可正常播放音频提醒
  • Release模式下该功能失效,调试控制台抛出错误:

    Dart Error: Dart_LookupLibrary: library 'package:my_app/infrastructure/notifications/push_notification_service.dart' not found.

该文件是lib目录内的内部Dart文件,非外部依赖。我已尝试以下方案但均未解决:

  • 检查APK确认音频资源未缺失
  • 移除新增的ProGuard规则
  • 添加ProGuard规则-keep class com.yourapp.package.name.infrastructure.notifications.** { *; }
  • 使用--no-shrink --no-obfuscate参数构建应用

可能的解决建议

  • 统一文件导入路径:确保项目中所有引用该文件的地方,都使用package:my_app/infrastructure/notifications/push_notification_service.dart的绝对路径,避免混用相对路径(如../xxx.dart),Release模式下Dart对library路径的解析更严格。
  • 清理缓存重新打包:执行flutter clean、删除项目根目录的.dart_tool文件夹,再运行flutter pub get后重新构建Release版本,排除缓存导致的索引异常。
  • 检查原生侧回调的library名称:如果推送通知的音频播放逻辑是通过原生代码(如Android的MessagingService)调用Dart方法,确认调用时指定的library名称完全匹配,注意大小写、路径分隔符的正确性。
  • 强制打包工具保留文件:在pubspec.yaml的flutter/assets中添加该文件路径(即使它不是资源文件),或者在项目核心代码中显式引用该service类,防止被tree-shaking误移除:
    flutter:
      assets:
        - lib/infrastructure/notifications/push_notification_service.dart
    
  • 临时降级Flutter版本:尝试降级到3.7.7或之前的稳定版,验证是否为3.7.8版本的特定打包bug,同时关注相关Flutter Issue的更新。

内容的提问来源于stack exchange,提问作者Mitchell Quarrie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:07:47