flutter - _SplashScreenViewState#32282(ticker active) 被设置为一个活动的 Ticker
问题描述
我正在为我的启动画面使用这个包。升级到 Flutter 2.2.3 版本后,出现以下错误。每当我重新安装应用程序时,它总是在日志中显示此警告。它说dispose()
,AnimationController
但我还没有创建任何AnimationController
. 谢谢您的帮助 :)
下面是我的代码
class SplashScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
AppStatusBar.setColor();
return SplashScreenView(
imageSrc: ImageConstants.kLogoImage,
navigateRoute: LoginScreen(),
duration: 1500,
imageSize: 100,
backgroundColor: Colors.white,
);
}
}
以下是控制台消息
The following assertion was thrown while finalizing the widget tree:
_SplashScreenViewState#32282(ticker active) was disposed with an active Ticker.
_SplashScreenViewState created a Ticker via its SingleTickerProviderStateMixin, but at the time dispose() was called on the mixin, that Ticker was still active. The Ticker must be disposed before calling super.dispose().
Tickers used by AnimationControllers should be disposed by calling dispose() on the AnimationController itself. Otherwise, the ticker will leak.
The offending ticker was: Ticker(created by _SplashScreenViewState#32282(lifecycle state: created))
The stack trace when the Ticker was actually created was:
#0 new Ticker.<anonymous closure>
package:flutter/…/scheduler/ticker.dart:67
#1 new Ticker
package:flutter/…/scheduler/ticker.dart:69
#2 SingleTickerProviderStateMixin.createTicker
package:flutter/…/widgets/ticker_provider.dart:129
#3 new AnimationController
package:flutter/…/animation/animation_controller.dart:247
#4 _SplashScreenViewState.initState
package:splash_screen_view/SplashScreenView.dart:126
#5 StatefulElement._firstBuild
package:flutter/…/widgets/framework.dart:4711
#6 ComponentElement.mount
package:flutter/…/widgets/framework.dart:4548
... Normal element mounting (172 frames)
#178 Element.inflateWidget
package:flutter/…/widgets/framework.dart:3611
#179 MultiChildRenderObjectElement.inflateWidget
package:flutter/…/widgets/framework.dart:6221
#180 MultiChildRenderObjectElement.mount
package:flutter/…/widgets/framework.dart:6232
... Normal element mounting (345 frames)
#525 Element.inflateWidget
package:flutter/…/widgets/framework.dart:3611
#526 Element.updateChild
package:flutter/…/widgets/framework.dart:3363
#527 RenderObjectToWidgetElement._rebuild
package:flutter/…/widgets/binding.dart:1189
#528 RenderObjectToWidgetElement.mount
package:flutter/…/widgets/binding.dart:1159
#529 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure>
package:flutter/…/widgets/binding.dart:1104
#530 BuildOwner.buildScope
package:flutter/…/widgets/framework.dart:2535
#531 RenderObjectToWidgetAdapter.attachToRenderTree
package:flutter/…/widgets/binding.dart:1103
#532 WidgetsBinding.attachRootWidget
package:flutter/…/widgets/binding.dart:937
#533 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure>
package:flutter/…/widgets/binding.dart:917
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
When the exception was thrown, this was the stack
#0 SingleTickerProviderStateMixin.dispose.<anonymous closure>
package:flutter/…/widgets/ticker_provider.dart:142
#1 SingleTickerProviderStateMixin.dispose
package:flutter/…/widgets/ticker_provider.dart:156
#2 _SplashScreenViewState.dispose
package:splash_screen_view/SplashScreenView.dart:149
#3 StatefulElement.unmount
package:flutter/…/widgets/framework.dart:4800
#4 _InactiveElements._unmount
package:flutter/…/widgets/framework.dart:1847
解决方案
推荐阅读
- makefile - 这个makefile规则是怎么调用的?
- assembly - 用汇编语言计算 a^2 - 3b
- python - Webscraping Selenium / 处理弹出窗口?
- flutter - Flutter file_picker 包为所有文件详细信息提供空值
- angular - Angular PWA 更新服务放在哪里?
- ios - 为什么我在 SwiftUI 中的 TextEditor 会忽略我的 .keyboardType?
- tensorflow - 在 TF 2.3 和 tf.keras 中更改全卷积网络输入形状
- angular - Angular9 rxjs-behaviorsubject 不适用于不同的组件?
- c - 这个程序以什么方式访问非法内存?
- reactjs - 如果值不变,Redux 触发减速器