Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 颤振错误:在AnimationController.dispose()之后调用AnimationController.stop()_Android_Flutter - Fatal编程技术网

Android 颤振错误:在AnimationController.dispose()之后调用AnimationController.stop()

Android 颤振错误:在AnimationController.dispose()之后调用AnimationController.stop(),android,flutter,Android,Flutter,我想将自定义主题应用于我的应用程序。因此,在创建“MaterialApp”小部件之前,我检查SharedReferences中的当前主题。为此,我用了一个未来的建筑商 class MyApp extends StatelessWidget { ThemeData myTheme; bool isDark; @override Widget build(BuildContext context) { isDark=false; return FutureBuild

我想将自定义主题应用于我的应用程序。因此,在创建“MaterialApp”小部件之前,我检查SharedReferences中的当前主题。为此,我用了一个未来的建筑商

class MyApp extends StatelessWidget {

  ThemeData myTheme;
  bool isDark;
  @override
  Widget build(BuildContext context) {
    isDark=false;
    return FutureBuilder(
      future: getTheme(),
      builder: (context,snapshot) {
        if (snapshot.hasData) {
          if(isDark)
            myTheme=Constants.darkTheme;
          else
            myTheme=Constants.lightTheme;
          return MaterialApp(
            title: 'Sample app',
            debugShowCheckedModeBanner: false,
            theme: myTheme,
            home: HomePage(),
          );
        }
        return MaterialApp(
          title: 'Sample app',
          debugShowCheckedModeBanner: false,
          home: Scaffold(body: Center(child: Text('Loading')),),
        );
      },
    );
  }
  Future<bool> getTheme() async  {
    SharedPreferences sharedPreferences =  await SharedPreferences.getInstance() ;
    isDark=sharedPreferences.getBool("isDark");
    if(isDark==null) {
      isDark=false;
      sharedPreferences.setBool("isDark", isDark);
    }
    return isDark;
  }
}
类MyApp扩展了无状态小部件{
梅多玛神话;
布尔伊斯达克;
@凌驾
小部件构建(构建上下文){
isDark=假;
回归未来建设者(
future:getTheme(),
生成器:(上下文,快照){
if(snapshot.hasData){
if(isDark)
myTheme=常数.darkTheme;
其他的
myTheme=Constants.lightTheme;
返回材料PP(
标题:“示例应用程序”,
debugShowCheckedModeBanner:false,
主题:神话,
主页:主页(),
);
}
返回材料PP(
标题:“示例应用程序”,
debugShowCheckedModeBanner:false,
主页:脚手架(主体:中心(子对象:文本(“加载”),),
);
},
);
}
Future getTheme()异步{
SharedReferences SharedReferences=等待SharedReferences.getInstance();
isDark=SharedReferences.getBool(“isDark”);
如果(isDark==null){
isDark=假;
seSharedReferences.setBool(“isDark”,isDark);
}
返回isDark;
}
}
除了这个错误,一切正常。此外,应用程序不会崩溃

E/flutter ( 5809): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: 'package:flutter/src/animation/animation_controller.dart': Failed assertion: line 741 pos 7: '_ticker != null': AnimationController.stop() called after AnimationController.dispose()
E/flutter ( 5809): AnimationController methods should not be used after calling dispose.
E/flutter ( 5809): #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
E/flutter ( 5809): #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
E/flutter ( 5809): #2      AnimationController.stop (package:flutter/src/animation/animation_controller.dart:741:7)
E/flutter ( 5809): #3      AnimationController.repeat (package:flutter/src/animation/animation_controller.dart:637:5)
E/flutter ( 5809): #4      BallPulseIndicator.startAnim (package:loading/indicator/ball_pulse_indicator.dart:48:16)
E/flutter ( 5809): #5      BallPulseIndicator.startAnims.<anonymous closure> (package:loading/indicator/ball_pulse_indicator.dart:55:9)
E/flutter ( 5809): #6      new Future.delayed.<anonymous closure> (dart:async/future.dart:326:39)
E/flutter ( 5809): #7      _rootRun (dart:async/zone.dart:1182:47)
E/flutter ( 5809): #8      _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 5809): #9      _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 5809): #10     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter ( 5809): #11     _rootRun (dart:async/zone.dart:1190:13)
E/flutter ( 5809): #12     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 5809): #13     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1021:23)
E/flutter ( 5809): #14     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
E/flutter ( 5809): #15     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:397:19)
E/flutter ( 5809): #16     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:428:5)
E/flutter ( 5809): #17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flatter(5809):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(177)]未处理的异常:“package:flatter/src/animation/animation\u controller.dart”:失败的断言:第741行位置7:”\u ticker!=null”:在AnimationController.dispose()之后调用AnimationController.stop()
E/flatter(5809):调用dispose后不应使用AnimationController方法。
E/颤振(5809):#0 _断言错误。_doThrowNew(飞镖:核心补丁/错误补丁。飞镖:46:39)
E/颤振(5809):#1(飞镖:核心补丁/错误补丁。飞镖:36:5)
E/flatter(5809):#2 AnimationController.stop(包:flatter/src/animation/animation_controller.dart:741:7)
E/flatter(5809):#3 AnimationController.repeat(包:flatter/src/animation/animation_controller.dart:637:5)
E/颤振(5809):#4个球脉冲指示器.startAnim(包装:装载/指示器/球脉冲指示器。省道:48:16)
E/颤振(5809):#5个球脉冲指示器。(包装:装载/指示器/球脉冲指示器。省道:55:9)
E/颤振(5809):#6新未来。延迟。(dart:async/future.dart:326:39)
E/flatter(5809):#7 rootRun(dart:async/zone.dart:1182:47)
E/flatter(5809):#8_CustomZone.run(dart:async/zone.dart:1093:19)
E/flatter(5809):#9 _CustomZone.runguard(dart:async/zone.dart:997:7)
E/颤振(5809):#10#u CustomZone.bindCallbackguared。(dart:async/zone.dart:1037:23)
E/flatter(5809):#11 rootRun(dart:async/zone.dart:1190:13)
E/flatter(5809):#12 _CustomZone.run(dart:async/zone.dart:1093:19)
E/颤振(5809):#13_CustomZone.bind。(dart:async/zone.dart:1021:23)
E/颤振(5809):14定时器。(dart:async patch/timer_patch.dart:18:15)
E/颤振(5809):#15 _计时器。_运行计时器(dart:isolate patch/Timer_impl.dart:397:19)
E/颤振(5809):#16 _定时器。_handleMessage(省道:隔离补丁/定时器_impl.省道:428:5)
E/颤振(5809):#17(RawReceivePortImpl.)(dart:隔离补丁/隔离补丁。dart:168:12)

如何修复此错误?

此错误来自于非常过时的插件。我建议改为使用软件包。

我在您的代码中没有看到任何动画控制器。我没有使用任何动画控制器,但仍然收到此错误。我不知道为什么。我之前没有收到它们,因为我没有实现future builder。请显示您的pubspec.yml
version:1.0.0+1环境:sdk:“>=2.7.0