我正在使用Telephony插件开发短信应用程序,根据类似的解决方案,我在顶层后台处理程序的顶部添加了一个装饰器,然后在发布模式下运行它,
运行后,debug模式正常,release模式前台也正常,只是“后台”和“终止”都不正确
@pragma('vm:entry-point')
Future<void> onBackgroundMessage(SmsMessage message) async {
debugPrint("onBackgroundMessage called");
............
}
添加后,还是不行,出现同样的Dart错误信息:
“Dart 错误:Dart_LookupLibrary:未找到库‘package:telephony/telephony.dart’。”
我已经添加了装饰器
@pragma('vm:entry-point')
,还是不行。
我解决了这个问题,只需要在 pubspec.yaml 中更改或添加 git 链接即可,
telephony:
git:
url: https://github.com/definev/Telephony.git
ref: develop
使用 telephony_fix 包
该错误是因为 flutter 框架会在发布模式下对电话包代码进行树摇,因此它在发布模式下无法工作
telephony_fix包通过防止发布模式下后台消息处理程序的树抖动来修复该错误。