4.2.0版本app首次安装启动进入flutter页面卡住
4.2.0版本app首次安装启动进入flutter页面卡住,杀死进程重新就没事了,降级4.0.4版本可以解决卡住的问题,但是又出现flutterFragment盖住natvieFragment的问题
我也遇到类似问题了,4.2.0版本首次安装从原生进入FlutterBoostFragment页面,flutter页面卡死,杀死重新进入就没问题
对我结合flutter_screen_utils 用也是这种情况,
static Future
if (window.viewConfiguration.geometry.isEmpty) {
return Future.delayed(duration, () async {
binding.deferFirstFrame();
await ensureScreenSize(window, duration);
return binding.allowFirstFrame();
});
}
} 最终是这里出问题 window.viewConfiguration.geometry.isEmpty 这个一直为空
对我结合flutter_screen_utils 用也是这种情况,
static Future ensureScreenSize([ FlutterWindow? window, Duration duration = const Duration(milliseconds: 10), ]) async { final binding = WidgetsFlutterBinding.ensureInitialized(); window ??= binding.window;
if (window.viewConfiguration.geometry.isEmpty) { return Future.delayed(duration, () async { binding.deferFirstFrame(); await ensureScreenSize(window, duration); return binding.allowFirstFrame(); }); }} 最终是这里出问题 window.viewConfiguration.geometry.isEmpty 这个一直为空
我也碰到了这问题,兄弟你有找到解决方案吗
碰到了同样的问题,目前降级到4.0.4版本凑活用
同样遇到这个问题了
是否有能够复现的Demo可以提供?
是否有能够复现的Demo可以提供? release包,用4.2.0版本,flutter 3.0.5版本测试必现,首次安装页面卡住,主要是不能滑动,可以响应点击事件
不能滑动,能响应点击事件,有点像 #1783 中的现象。估计是FlutterEngine渲染的Surface没绑上,或者被解绑了。
不能滑动,能响应点击事件,有点像 #1783 中的现象。估计是FlutterEngine渲染的Surface没绑上,或者被解绑了。
我目前是把`changeFlutterAppLifecycle(FLUTTER_APP_STATE_RESUMED);和 changeFlutterAppLifecycle(FLUTTER_APP_STATE_PAUSED);注释了暂时没问题
我用4.2的FB+3.0.5的Flutter,在3台设备上卸载了再安装,跑Debug、Release包,都没能复现问题。
我也出现了
我也出现了
@Roger110 是否有能重现的Demo提供?
我也出现了
@Roger110 是否有能重现的Demo提供?
是在项目里面,demo不好抽出来
@Roger110 能否修改flutter_boost的example项目,然后重现?感觉上像是和初始化调用顺序有关。
+1 望修复
@Roger110 能否修改flutter_boost的example项目,然后重现?感觉上像是和初始化调用顺序有关。
深入代码看了下,发现是帧调度的问题,app首次启动finish页面的onstop方法比新开启页面的onstart方法后执行了,导致页面出现假死情况,自己重写帧调度解决了
不能滑动,能响应点击事件,有点像 #1783 中的现象。估计是FlutterEngine渲染的Surface没绑上,或者被解绑了。
我目前是把`changeFlutterAppLifecycle(FLUTTER_APP_STATE_RESUMED);和 changeFlutterAppLifecycle(FLUTTER_APP_STATE_PAUSED);注释了暂时没问题
目前用这个方法处理了一下,似乎正常了
不能滑动,能响应点击事件,有点像 #1783 中的现象。估计是FlutterEngine渲染的Surface没绑上,或者被解绑了。
我目前是把`changeFlutterAppLifecycle(FLUTTER_APP_STATE_RESUMED);和 changeFlutterAppLifecycle(FLUTTER_APP_STATE_PAUSED);注释了暂时没问题
目前用这个方法处理了一下,似乎正常了
这个只能解决假死问题,前后台切换残影闪烁的问题就会出现
不能滑动,能响应点击事件,有点像 #1783 中的现象。估计是FlutterEngine渲染的Surface没绑上,或者被解绑了。
我目前是把`changeFlutterAppLifecycle(FLUTTER_APP_STATE_RESUMED);和 changeFlutterAppLifecycle(FLUTTER_APP_STATE_PAUSED);注释了暂时没问题
目前用这个方法处理了一下,似乎正常了
这个只能解决假死问题,前后台切换残影闪烁的问题就会出现
有更好的解决方案吗?看了你楼上的回复,查了一下Flutter帧调度的资料,没太看懂
可以
具体可以看看这个 https://github.com/alibaba/flutter_boost/issues/1740
4.2.2也是同样的问题
@cuocuo @joechan-cq @sybil052 @tang5011235 @Roger110 @wangxiongtao
这个提交导致页面卡主问题,临时注释掉就好了
https://github.com/alibaba/flutter_boost/pull/1724
@cuocuo @joechan-cq @sybil052 @tang5011235 @Roger110 @wangxiongtao
这个提交导致页面卡主问题,临时注释掉就好了
#1724
能提个新版本解决这个问题么
@cuocuo @joechan-cq @sybil052 @tang5011235 @Roger110 @wangxiongtao 这个提交导致页面卡主问题,临时注释掉就好了 #1724
能提个新版本解决这个问题么
可以fork一下,然后自己修改,项目里引用自己的github仓库地址
我还是看不出1724中的修改对这个问题的影响。1724中的修改,只会在onForeground和onBackground的时候触发。app启动后,如果不是直接就进入flutter页面,或者出现第一个NativeActivity先onStop,Flutter的Activity再onStart的异常情况,就并不会触发changeFlutterAppLifecycle的代码。第一次进入Flutter正常应该都是依靠FlutterBoostPlugin.onContainerCreated去发送的onResume事件。
所以,是否可以打日志检查一下BoostActivityLifecycle中的生命周期的执行情况。
你们是不是都对FlutterBoost做了延迟初始化?#1742
如果做了延迟初始化,又没有自行接管ActivityLifecycleCallbacks 那的确会出现问题。参考#1652
刚才实验了一下,应该是延迟初始化导致,因为现在这些隐私限制,首次启动用户没有同意协议的时候不能跑流量; FlutterBoost在application中初始化时会跑流量,在首次启动的时候是在用户点击同意之后再进行初始化的引擎; 放到application中初始化就好了,但是会导致首次启动跑流量问题
刚才实验了一下,应该是延迟初始化导致,因为现在这些隐私限制,首次启动用户没有同意协议的时候不能跑流量; FlutterBoost在application中初始化时会跑流量,在首次启动的时候是在用户点击同意之后再进行初始化的引擎; 放到application中初始化就好了,但是会导致首次启动跑流量问题
但是4.0.4是没有这个问题的
刚才实验了一下,应该是延迟初始化导致,因为现在这些隐私限制,首次启动用户没有同意协议的时候不能跑流量; FlutterBoost在application中初始化时会跑流量,在首次启动的时候是在用户点击同意之后再进行初始化的引擎; 放到application中初始化就好了,但是会导致首次启动跑流量问题
但是4.0.4是没有这个问题的
4.0.4并没有onForeground和onBackground的处理,所以正常的。卡住是因为多触发了onBackground里的pause。
@1mf2 引擎可以延迟初始化,只要自行接管AppLifecycleCallback就可以了。