alibaba / flutter_boost

FlutterBoost is a Flutter plugin which enables hybrid integration of Flutter for your existing native apps with minimum efforts
https://github.com/alibaba/flutter_boost
MIT License
6.96k stars 1.23k forks source link

[FlutterBoostPlugin sendEventToNative:error:] 的崩溃 #1379

Open ETListener opened 3 years ago

ETListener commented 3 years ago

Steps to Reproduce

A small application to reproduce the bug(最小化可复现的demo)

无法稳定复现,不过bugly上的崩溃日志记录如下,数量不少。 想问一下,这个问题是否已经修复,如果修复了我应该升级到哪个版本。

Flutter Boost Version flutter_boost: git: url: 'https://github.com/alibaba/flutter_boost.git' ref: 'v3.0-preview.9'

Target Platform: iOS

Target OS version/browser: 14.3 (18C66) 不止这一种系统版本

Devices: iPhone 7 不止这一种机型

Logs

`

0 Thread

0 libsystem_kernel.dylib _pthread_kill + 8 1 libsystem_pthread.dylib _pthread_kill + 212 2 libsystem_c.dylib _abort + 100 3 libsystem_c.dylib _err 4 flutter_boost -[FlutterBoostPlugin sendEventToNative:error:].cold.1 + 0 5 flutter_boost -[FBFlutterContainerManager removeContainerByUniqueId:] + 0 6 flutter_boost -[FlutterBoostPlugin containerWillAppear:] + 456 7 flutter_boost -[FBFlutterViewContainer viewWillAppear:] + 144 8 Queen -[FBFlutterViewContainer(SQTools) sqfbvc_viewWillAppear:] (FBFlutterViewContainer+SQTools.m:91) 9 UIKitCore -[UIViewController _setViewAppearState:isAnimating:] + 604 10 UIKitCore -[UIViewController viewWillAppear:] + 116 11 UIKitCore -[UINavigationController _startCustomTransition:] + 1344 12 UIKitCore -[UINavigationController _startDeferredTransitionIfNeeded:] + 700 13 UIKitCore -[UINavigationController viewWillLayoutSubviews] + 164 14 UIKitCore -[UILayoutContainerView layoutSubviews] + 224 15 UIKitCore -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2468 16 QuartzCore -[CALayer layoutSublayers] + 288 17 QuartzCore CA::Layer::layout_if_needed(CA::Transaction) + 520 18 QuartzCore CA::Layer::layout_and_display_if_needed(CA::Transaction) + 140 19 QuartzCore CA::Context::commit_transaction(CA::Transaction, double, double) + 416 20 QuartzCore CA::Transaction::commit() + 728 21 QuartzCore CA::Transaction::observer_callback(_CFRunLoopObserver, unsigned long, void) + 92 22 CoreFoundation CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 32 23 CoreFoundation __CFRunLoopDoObservers + 604 24 CoreFoundation CFRunLoopRun + 960 25 CoreFoundation _CFRunLoopRunSpecific + 572 26 GraphicsServices _GSEventRunModal + 160 27 UIKitCore -[UIApplication _run] + 1052 28 UIKitCore _UIApplicationMain + 164 29 0MATweakEx.dylib vndsuohau79173918g01gj410jvgdsohju1::bvdsiabovuiw7hr9g891y7419740932848g(int, char*, NSString, NSString*) + 732 30 Queen main (main.m:15) 31 libdyld.dylib _start + 4 `

[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale zh-Hans-CN) • Flutter version 2.2.3 at /Users/chenglei/Desktop/FlutterDev/flutter • Framework revision f4abaa0735 (3 months ago), 2021-07-01 12:46:11 -0700 • Engine revision 241c87ad80 • Dart version 2.13.4 • Pub download mirror https://pub.flutter-io.cn • Flutter download mirror https://storage.flutter-io.cn

WinJayQ commented 3 years ago

15.0 (19A344) iPhone Xs Max 我也遇到了同样的崩溃 @ETListener ,请问你解决了吗?

ETListener commented 3 years ago

15.0 (19A344) iPhone Xs Max 我也遇到了同样的崩溃@ETListener,请问你解决了吗?

暂时没有解决;应该是FlutterBoost的问题 我这边查了一下,应该和iOS系统版本和手机机型无关。 我这边打算后续升级一下Flutter 和 FlutterBoost 的版本试试

WinJayQ commented 2 years ago

还没有解决 

------------------ 原始邮件 ------------------ 发件人: "alibaba/flutter_boost" @.>; 发送时间: 2021年11月15日(星期一) 上午10:41 @.>; @.**@.>; 主题: Re: [alibaba/flutter_boost] [FlutterBoostPlugin sendEventToNative:error:] 的崩溃 (#1379)

15.0 (19A344) iPhone Xs Max @.***,请问你解决了吗?

暂时没有解决;应该是FlutterBoost的问题 我这边查了一下,应该和iOS系统版本和手机机型无关。 我这边打算后续升级一下Flutter 和 FlutterBoost 的版本试试

你好,我们也遇到了一样的问题,请问有解决方案了吗,现在线上影响的设备太多了

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

SZT2014 commented 2 years ago

@ETListener 我现在用的是最新的版本v3.0-null-safety-preview.16也遇到了这个问题 请问一下 这个问题解决了吗?

SZT2014 commented 2 years ago

@noborder @0xZOne 这个问题能关注一下吗

JerryFans commented 2 years ago

15.0 (19A344) iPhone Xs Max 我也遇到了同样的崩溃@ETListener,请问你解决了吗?

暂时没有解决;应该是FlutterBoost的问题 我这边查了一下,应该和iOS系统版本和手机机型无关。 我这边打算后续升级一下Flutter 和 FlutterBoost 的版本试试

请问有稳定复现场景么,我用到preview13版本 flutter2.2.3 和你差不多。 刚上线一天就有一个崩溃了

JerryFans commented 2 years ago

Steps to Reproduce

A small application to reproduce the bug(最小化可复现的demo)

无法稳定复现,不过bugly上的崩溃日志记录如下,数量不少。 想问一下,这个问题是否已经修复,如果修复了我应该升级到哪个版本。

Flutter Boost Version flutter_boost: git: url: 'https://github.com/alibaba/flutter_boost.git' ref: 'v3.0-preview.9'

Target Platform: iOS

Target OS version/browser: 14.3 (18C66) 不止这一种系统版本

Devices: iPhone 7 不止这一种机型

Logs

` #0 Thread

0 libsystem_kernel.dylib _pthread_kill + 8 1 libsystem_pthread.dylib _pthread_kill + 212 2 libsystem_c.dylib _abort + 100 3 libsystem_c.dylib _err 4 flutter_boost -[FlutterBoostPlugin sendEventToNative:error:].cold.1 + 0 5 flutter_boost -[FBFlutterContainerManager removeContainerByUniqueId:] + 0 6 flutter_boost -[FlutterBoostPlugin containerWillAppear:] + 456 7 flutter_boost -[FBFlutterViewContainer viewWillAppear:] + 144 8 Queen -[FBFlutterViewContainer(SQTools) sqfbvc_viewWillAppear:] (FBFlutterViewContainer+SQTools.m:91) 9 UIKitCore -[UIViewController _setViewAppearState:isAnimating:] + 604 10 UIKitCore -[UIViewController viewWillAppear:] + 116 11 UIKitCore -[UINavigationController _startCustomTransition:] + 1344 12 UIKitCore -[UINavigationController _startDeferredTransitionIfNeeded:] + 700 13 UIKitCore -[UINavigationController viewWillLayoutSubviews] + 164 14 UIKitCore -[UILayoutContainerView layoutSubviews] + 224 15 UIKitCore -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2468 16 QuartzCore -[CALayer layoutSublayers] + 288 17 QuartzCore CA::Layer::layout_if_needed(CA::Transaction) + 520 18 QuartzCore CA::Layer::layout_and_display_if_needed(CA::Transaction) + 140 19 QuartzCore CA::Context::commit_transaction(CA::Transaction, double, double) + 416 20 QuartzCore CA::Transaction::commit() + 728 21 QuartzCore CA::Transaction::observer_callback(CFRunLoopObserver, unsigned long, void) + 92 22 CoreFoundation _CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 32 23 CoreFoundation _CFRunLoopDoObservers + 604 24 CoreFoundation _CFRunLoopRun + 960 25 CoreFoundation _CFRunLoopRunSpecific + 572 26 GraphicsServices _GSEventRunModal + 160 27 UIKitCore -[UIApplication _run] + 1052 28 UIKitCore _UIApplicationMain + 164 29 0MATweakEx.dylib vndsuohau79173918g01gj410jvgdsohju1::bvdsiabovuiw7hr9g891y7419740932848g(int, char*, NSString, NSString*) + 732 30 Queen main (main.m:15) 31 libdyld.dylib _start + 4 `

[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale zh-Hans-CN) • Flutter version 2.2.3 at /Users/chenglei/Desktop/FlutterDev/flutter • Framework revision f4abaa0735 (3 months ago), 2021-07-01 12:46:11 -0700 • Engine revision 241c87ad80 • Dart version 2.13.4 • Pub download mirror https://pub.flutter-io.cn • Flutter download mirror https://storage.flutter-io.cn

请问有复现demo么 我想尝试自己解决这个问题 我的项目也有同样的报错 但是不好复现

lingjye commented 1 year ago

这是解决了?

JerryFans commented 1 year ago

算是解决了,一个内存泄露的问题 非常复杂。 我这里是特殊处理了。 大概是一些非正常的dealloc时候 不会触发didMoveToParentViewController导致engine没有detach 就会有问题。 我是在一些特殊场景 强制detach了。

lingjye commented 1 year ago

👍

算是解决了,一个内存泄露的问题 非常复杂。 我这里是特殊处理了。 大概是一些非正常的dealloc时候 不会触发didMoveToParentViewController导致engine没有detach 就会有问题。 我是在一些特殊场景 强制detach了。

Smallfan commented 1 year ago

算是解决了,一个内存泄露的问题 非常复杂。 我这里是特殊处理了。 大概是一些非正常的dealloc时候 不会触发didMoveToParentViewController导致engine没有detach 就会有问题。 我是在一些特殊场景 强制detach了。

@JerryFans 大佬,请问具体是如何解决哈,有文章之类吗

JerryFans commented 1 year ago

算是解决了,一个内存泄露的问题 非常复杂。 我这里是特殊处理了。 大概是一些非正常的dealloc时候 不会触发didMoveToParentViewController导致engine没有detach 就会有问题。 我是在一些特殊场景 强制detach了。

@JerryFans 大佬,请问具体是如何解决哈,有文章之类吗

你看源码就会发现只有在didMoveToParent(大概是对应popViewController的场景) 和 dismissController会出发detachFlutter。但是如果你们项目中有特殊的case不能触发到这些场景导致无法正常detach就会有这种crash。(比如你切换登陆整个rootVC都不见了,你整个vc栈要干掉。实际都不会触发上面的方法,就会crash。 我的做法是自己补充这些场景手动detachFlutter。但要注意不要过度detach。做个变量控制只detach一次就好了。

wv-y commented 7 months ago

老哥们,这个问题有啥好的解决办法吗?我这是把boost升级到4.0.4之后出现的问题,用的flutter版本是3.7.12

_cxa_throw + 6704335372284639784 -[FBFlutterContainerManager removeContainerByUniqueId:] (FBFlutterContainerManager.m:60-61) -[FlutterBoostPlugin containerWillAppear:] (FlutterBoostPlugin.m:0) -[FBFlutterViewContainer viewWillAppear:] (FBFlutterViewContainer.m:272) -[UIViewController _setViewAppearState:isAnimating:] + 664