Open zq6419 opened 1 year ago
从日志看,是FlutterBoost没有被正确初始化。
一个可能的原因是,接入方自定义了appBuilder,但是appBuilder的入参没有被加入widget树中,导致FlutterBoost初始化失败~
......
@override
Widget build(BuildContext context) {
return FlutterBoostApp(
routeFactory,
appBuilder: XXXXBuilder, // 自定义appBuilder
interceptors: []
);
}
Widget XXXXBuilder(Widget child) {
return Container(); // 没有将child挂到widget树上
}
......
如果是其他情况,请给个可复现的demo,谢谢。
@0xZOne 你好,我们加到widget树中也是一样的,杀掉APP,重新打开,多次尝试就会出现这个问题, 之前版本未出现这种情况,近期升级了Flutter环境和FlutterBoost,麻烦给看下这个问题 入口代码如下:
Widget _materialAppBuilder(Widget home) {
return MaterialApp(
builder: EasyLoading.init(
builder: (context, widget) {
return MediaQuery(
data: MediaQuery.of(context)
.copyWith(textScaleFactor: 1.0, boldText: false),
child: widget,
);
},
),
routes: Router().getRouters(context),
home: Container(
child: home,
color: Colors.white,
),
);
}
@override
Widget build(BuildContext context) {
return FlutterBoostApp(
routeFactory,
appBuilder: _materialAppBuilder,
);
}
flutter doctor -v
[✓] Flutter (Channel stable, 3.0.5, on macOS 13.0 22A8380 darwin-arm, locale
zh-Hans-CN)
• Flutter version 3.0.5 at /Users/gyk/workdeveloper/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision f1875d570e (9 months ago), 2022-07-13 11:24:16 -0700
• Engine revision e85ea0e79c
• Dart version 2.17.6
• DevTools version 2.12.2
• Pub download mirror https://pub.flutter-io.cn
• Flutter download mirror https://storage.flutter-io.cn
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
• Android SDK at /Users/gyk/Library/Android/sdk
• Platform android-33-ext5, build-tools 33.0.2
• ANDROID_HOME = /Users/gyk/Library/Android/sdk
• Java binary at: /Applications/Android
Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
11.0.15+0-b2043.56-8887301)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.12.0
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
11.0.15+0-b2043.56-8887301)
[✓] VS Code (version 1.77.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.62.0
[✓] Connected device (2 available)
• macOS (desktop) • macos • darwin-arm64 • macOS 13.0 22A8380 darwin-arm
• Chrome (web) • chrome • web-javascript • Google Chrome 112.0.5615.121
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!
Release 模式下,杀掉App,再重新打开App,几乎是必现的,错误信息 flutter_boost版本4.2.1, 4.2.2都会出现
2023-04-20 17:54:28.448655 flutter log-->error msg:══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞══════════════════════
The following assertion was thrown during a scheduler callback:
Please check if the engine has been initialized!
'package:flutter_boost/src/boost_channel.dart':
Failed assertion: line 33 pos 9: '_appState != null'
When the exception was thrown, this was the stack:
#2 BoostChannel.addEventListener (package:flutter_boost/src/boost_channel.dart:33:9)
#3 FlutterBoostAppState._addAppLifecycleStateEventListener (package:flutter_boost/src/flutter_boost_app.dart:120:10)
#4 FlutterBoostAppState.initState.<anonymous closure> (package:flutter_boost/src/flutter_boost_app.dart:109:7)
#5 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#6 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1091:9)
#7 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:864:7)
(elided 13 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
═════════════════════════════════════════════════════════════════
2023-04-20 17:54:28.448649 flutter log-->error:Please check if the engine has been initialized!
'package:flutter_boost/src/boost_channel.dart':
Failed assertion: line 33 pos 9: '_appState != null'
stack:#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
#2 BoostChannel.addEventListener (package:flutter_boost/src/boost_channel.dart:33:9)
#3 FlutterBoostAppState._addAppLifecycleStateEventListener (package:flutter_boost/src/flutter_boost_app.dart:120:10)
#4 FlutterBoostAppState.initState.<anonymous closure> (package:flutter_boost/src/flutter_boost_app.dart:109:7)
#5 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#6 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1091:9)
#7 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:864:7)
#8 _rootRun (dart:async/zone.dart:1418:47)
#9 _CustomZone.run (dart:async/zone.dart:1328:19)
#10 _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
#11 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
#12 _rootRun (dart:async/zone.dart:1426:13)
#13 _CustomZone.run (dart:async/zone.dart:1328:19)
#14 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1260:23)
#15 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
#16 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
#17 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
#18 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
2023-04-20 17:54:28.448622 FlutterBoost#Oops, Failed to update overlay. mode=BoostSpecificEntryRefreshMode.add, BoostContainer(name:/, pages:[BoostPage<dynamic>(name:/, uniqueId:1681984467915_/, arguments:null)])
白屏页面是不是使用tabbar了
使用的版本4.2.0,手机是iponexr 系统版本是16.1.1 报错日志:flutter: FlutterBoost#Oops, Failed to update overlay. mode=BoostSpecificEntryRefreshMode.add, BoostContainer(name:rootRoutePage, pages:[BoostPage(name:rootRoutePage, uniqueId:11F51639-F3D9-45FF-B562-123A3870A75F, arguments:{animated: false})])