【问题标题】:flutter_reactive_ble not able to connect with release build (Flutter version 3.3.4)flutter_reactive_ble 无法连接发布版本(Flutter 版本 3.3.4)
【发布时间】:2023-01-19 07:03:12
【问题描述】:

我正在使用 flutter_reactive_ble 包进行蓝牙连接,在升级到最新的 Flutter 版本(3.3.4)后,我在调试时按预期连接,但是发布版本没有连接(适用于 Flutter 3.0.5 的两个版本)。

希望有人可能遇到过这个建议/解决方案。

【问题讨论】:

  • 什么设备?你用的是IOS/安卓吗?或者两者都在发布中?
  • 我出现在两个平台上。
  • 你试过哪一对?阿杜伊诺?或者处理 hm10 的设备?>
  • 我们使用的是符合 BT 5.0 标准的 Infineon CYW89373 模块。
  • 你解决了吗?我遇到同样的问题

标签: flutter


【解决方案1】:

所以这里是修复!

原来它在 flutter_background_service 包的 FAQ 中,我们也正在使用它(这个答案是特定于与这个包一起使用的)。

用于发布模式构建的 dart 编译器将进行 tree shaking(删除无用代码)和缩小(缩短变量和方法名称,删除空格和 cmets 等)以缩小应用程序的大小。这两者都不会在调试模式下发生。人们假设在 Dart 2.18(Flutter 3.3 附带)中更新了 tree shaking 和/或 minifying。 onStart(...) 在 tree shaking / minifying 期间被删除/缩小,因此 FlutterBackgroundService 包中的本机代码找不到它,导致后台服务永远不会启动。 @pragma('vm:entry-point') 使得 onStart(...) 在这些大小优化期间不会被删除或缩短。

我仍然不确定问题是摇树还是缩小。我的谷歌搜索使它倾向于 tree shaking,但是,该应用程序在配置文件模式下运行,它执行 tree shaking 但不缩小,这让我倾向于缩小。我认为我们是否知道并不重要。

@pragma('vm:entry-point') 的一些文档:https://github.com/dart-lang/sdk/blob/master/runtime/docs/compiler/aot/entry_point_pragma.md

关于 tree shaking 和缩小的易于阅读的帖子:http://blog.sethladd.com/2013/01/minification-is-not-enough-you-need.html

关于 tree shaking 的深入信息:https://www.alibabacloud.com/blog/the-tree-shaking-mechanism-in-flutter_597737

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2023-01-03
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多