flutter_boost icon indicating copy to clipboard operation
flutter_boost copied to clipboard

Android端 Fragment 包含的 Flutter 页面 首次启动 没有初始化 白屏或黑屏

Open zhoutongbie opened this issue 4 years ago • 4 comments

Android端 Fragment 包含的 Flutter 页面 首次启动 没有初始化 白屏或黑屏

App是登录后展示4个Tab。4个Tab是原生写的 tab里面嵌的是 Fragment , Fragment里面放的Flutter页面

 mHomeFragment = new CunwFlutterFragment
            .CachedEngineFragmentBuilder(CunwFlutterFragment.class)
            .url("/home")
            .build();

    mClasssFragment = new ClasssFlutterFragment
            .CachedEngineFragmentBuilder(ClasssFlutterFragment.class)
            .url("/classs")
            .build();

升级 flutter_boost 从 v3.0-preview.5. 到 v3.0-null-safety-preview.13 支持空安全版本后 Android端出现此问题 IOS端没有问题

日志 2021-11-25 10:36:30.121 29743-29999/cn.com.cunw.teacheraide I/flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞══════════════════════ The following _CastError was thrown during a scheduler callback: Null check operator used on a null value

When the exception was thrown, this was the stack:
#0      BoostChannel.addEventListener (package:flutter_boost/boost_channel.dart:42:21)
#1      FlutterBoostAppState._addAppLifecycleStateEventListener (package:flutter_boost/flutter_boost_app.dart:125:10)
#2      FlutterBoostAppState.initState.<anonymous closure> (package:flutter_boost/flutter_boost_app.dart:102:7)
#3      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#4      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1088:9)
#5      SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
════════

overlayKey.currentContext 为null

zhoutongbie avatar Nov 25 '21 02:11 zhoutongbie

'v3.0-null-safety-preview.9' 启动报异常

Null check operator used on a null value at flutter.#0 BoostChannel.addEventListener (package:flutter_boost/boost_channel.dart:31:21)(Unknown Source:0) at flutter.#1 FlutterBoostAppState._addAppLifecycleStateEventListener (package:flutter_boost/flutter_boost_app.dart:113:10)(Unknown Source:0) at flutter.#2 FlutterBoostAppState.initState. (package:flutter_boost/flutter_boost_app.dart:95:7)(Unknown Source:0) at flutter.#3 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)(Unknown Source:0) at flutter.#4 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1090:9)(Unknown Source:0) at flutter.#5 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:865:7)(Unknown Source:0) at flutter.#6 _rootRun (dart:async/zone.dart:1346:47)(Unknown Source:0) at flutter.#7 _CustomZone.run (dart:async/zone.dart:1258:19)(Unknown Source:0) at flutter.#8 _CustomZone.runGuarded (dart:async/zone.dart:1162:7)(Unknown Source:0)

hello-soon avatar Nov 25 '21 06:11 hello-soon

_addAppLifecycleStateEventListener

VoidCallback addEventListener(String key, EventListener listener) { return _appState!.addEventListener(key, listener); } 感觉是这个_appState 强制解包造成的

hu5980 avatar Nov 30 '21 07:11 hu5980

mark

kiloshell avatar Jan 14 '22 09:01 kiloshell

解决了吗

OnClickListener2048 avatar Apr 18 '22 03:04 OnClickListener2048