fluttercommunity / fluttercommunity/chewie

'method 'remove' was called on null' while change video in profile or release mode

Open
#150 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
2.1k
Forks
1.1k
Avg merge
6d 8h
Merged PRs (30d)
6

Description

I use code like below to change video,but I got exception in release and profile version,but never trig in debug mode.

```
setState(() {
chewieController?.dispose();
videoPlayerController?.dispose();
videoPlayerController = VideoPlayerController.network(new_video_url);
chewieController = ChewieController(
videoPlayerController: videoPlayerController,
aspectRatio: videoRatio,
autoPlay: true,
looping: false,
);
});
```

expcetion
```
I/flutter (23544): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (23544): The following NoSuchMethodError was thrown building KeyedSubtree-[GlobalKey#b505a]:
I/flutter (23544): The method 'remove' was called on null.
I/flutter (23544): Receiver: null
I/flutter (23544): Tried calling: remove()
I/flutter (23544): When the exception was thrown, this was the stack:
I/flutter (23544): #0 ChangeNotifier.removeListener (package:flutter/src/foundation/change_notifier.dart:167)
I/flutter (23544): #1 _VideoPlayerState.didUpdateWidget (package:video_player/video_player.dart:492)
I/flutter (23544): #2 StatefulElement.update (package:flutter/src/widgets/framework.dart:3879)
I/flutter (23544): #3 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #4 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #5 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #6 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #7 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #8 StatelessElement.update (package:flutter/src/widgets/framework.dart:3796)
I/flutter (23544): #9 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #10 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #11 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #12 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #13 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #14 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #15 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #16 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4601)
I/flutter (23544): #17 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992)
I/flutter (23544): #18 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #19 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #20 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #21 StatelessElement.update (package:flutter/src/widgets/framework.dart:3796)
I/flutter (23544): #22 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #23 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #24 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #25 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #26 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #27 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #28 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #29 StatelessElement.update (package:flutter/src/widgets/framework.dart:3796)
I/flutter (23544): #30 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #31 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #34 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #35 StatelessElement.update (package:flutter/src/widgets/framework.dart:3796)
I/flutter (23544): #36 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #37 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #38 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #39 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #40 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #41 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #42 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #43 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #44 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #45 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #46 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #47 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #48 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #49 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4601)
I/flutter (23544): #50 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992)
I/flutter (23544): #51 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #52 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #53 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #54 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #55 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #56 StatelessElement.update (package:flutter/src/widgets/framework.dart:3796)
I/flutter (23544): #57 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #58 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4601)
I/flutter (23544): #59 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992)
I/flutter (23544): #60 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #61 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #62 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #63 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #64 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #65 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #66 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #67 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #68 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #69 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4601)
I/flutter (23544): #70 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992)
I/flutter (23544): #71 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #73 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #74 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #75 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #77 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #78 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #79 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #81 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #82 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #83 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #84 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #85 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #86 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #87 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #88 StatelessElement.update (package:flutter/src/widgets/framework.dart:3796)
I/flutter (23544): #89 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #90 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4883)
I/flutter (23544): #91 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #92 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #93 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #94 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #95 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #96 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #97 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #98 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #99 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #100 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #101 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #102 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #103 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #104 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #105 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #106 ProxyElement.update (package:flutter/src/widgets/framework.dart:4006)
I/flutter (23544): #107 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #108 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #109 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #110 StatefulElement.update (package:flutter/src/widgets/framework.dart:3894)
I/flutter (23544): #111 Element.updateChild (package:flutter/src/widgets/framework.dart:2748)
I/flutter (23544): #112 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3747)
I/flutter (23544): #113 Element.rebuild (package:flutter/src/widgets/framework.dart:3559)
I/flutter (23544): #114 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2273)
I/flutter (23544): #115 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700)
I/flutter (23544): #116 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:268)
I/flutter (23544): #117 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:988)
I/flutter (23544): #118 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:928)
I/flutter (23544): #119 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:840)
I/flutter (23544): #123 _invoke (dart:ui/hooks.dart:209)
I/flutter (23544): #124 _drawFrame (dart:ui/hooks.dart:168)
I/flutter (23544): (elided 3 frames from package dart:async)

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the controller change in profile and release modes using the reported snippet. Inspect the stack entry at _VideoPlayerState.didUpdateWidget in package:flutter/src/video_player/video_player.dart and compare the widget update sequence with the dispose calls. Done means changing the video no longer throws the reported NoSuchMethodError.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, flutter
Domain
audio-video-rtc, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.