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
相关产品推荐
相关产品推荐

