我正在使用flutter_reactive_ble包进行蓝牙连接,在升级到最新Flutter版本(3.3.4)后,我在调试时按预期连接,但发布版本未连接(适用于Flutter 3.0.5的两个版本)。希望有人可能遇到了这个与建议/解决方案。
7hiiyaii1#
这就是解决办法!原来它是在flutter_background_service包的FAQ中,我们也在使用它(这个答案是专门针对这个包的)。发布模式构建的dart编译器将执行树摇动(删除死代码)和缩小(缩短变量和方法名,删除白色和注解,等等)来缩小应用程序的大小。这两种情况在调试模式下都不会发生。人们认为在Dart2.18中(Flutter 3.3附带)更新了树的摇动和/或缩小。onStart(...)在树摇动/缩小期间被删除/缩小,因此FlutterBackgroundService包中的本地代码无法找到它,@pragma('vm:entry-point')使onStart(...)在这些大小优化期间不会被删除或缩短。我仍然不确定这个问题是树摇动还是缩小。我的谷歌搜索使它倾向于树摇动,然而,该应用程序的配置文件模式构建执行树摇动,但不缩小,这使我倾向于缩小。我不认为这真的很重要,如果我们知道与否。@pragma('vm:入口点')的一些文档:https://github.com/dart-lang/sdk/blob/master/runtime/docs/compiler/aot/entry_point_pragma.md容易阅读关于树摇动和缩小的帖子:http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html关于树摇动的深入信息:https://www.alibabacloud.com/blog/the-tree-shaking-mechanism-in-flutter_597737
1条答案
按热度按时间7hiiyaii1#
这就是解决办法!
原来它是在flutter_background_service包的FAQ中,我们也在使用它(这个答案是专门针对这个包的)。
发布模式构建的dart编译器将执行树摇动(删除死代码)和缩小(缩短变量和方法名,删除白色和注解,等等)来缩小应用程序的大小。这两种情况在调试模式下都不会发生。人们认为在Dart2.18中(Flutter 3.3附带)更新了树的摇动和/或缩小。onStart(...)在树摇动/缩小期间被删除/缩小,因此FlutterBackgroundService包中的本地代码无法找到它,@pragma('vm:entry-point')使onStart(...)在这些大小优化期间不会被删除或缩短。
我仍然不确定这个问题是树摇动还是缩小。我的谷歌搜索使它倾向于树摇动,然而,该应用程序的配置文件模式构建执行树摇动,但不缩小,这使我倾向于缩小。我不认为这真的很重要,如果我们知道与否。
@pragma('vm:入口点')的一些文档:https://github.com/dart-lang/sdk/blob/master/runtime/docs/compiler/aot/entry_point_pragma.md
容易阅读关于树摇动和缩小的帖子:http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html
关于树摇动的深入信息:https://www.alibabacloud.com/blog/the-tree-shaking-mechanism-in-flutter_597737