videosdk-rtc-flutter-sdk-example icon indicating copy to clipboard operation
videosdk-rtc-flutter-sdk-example copied to clipboard

type 'MultiChildLayoutParentData' is not a subtype of type 'FlexParentData' in type cast

Open RudrThakur opened this issue 1 year ago • 3 comments

Flutter Doctor -

[√] Flutter (Channel stable, 3.3.10, on Microsoft Windows [Version 10.0.19045.3930], locale en-IN) • Flutter version 3.3.10 on channel stable at E:\flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 135454af32 (1 year, 1 month ago), 2022-12-15 07:36:55 -0800 • Engine revision 3316dd8728 • Dart version 2.18.6 • DevTools version 2.15.0

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0) • Android SDK at C:\Users\Admin\AppData\Local\Android\sdk • Platform android-33, build-tools 33.0.0 • Java binary at: E:\Android Studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866) • All Android licenses accepted.

[√] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop for Windows X Visual Studio not installed; this is necessary for Windows development. Download at https://visualstudio.microsoft.com/downloads/. Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2021.3) • Android Studio at E:\Android Studio • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[√] VS Code (version 1.85.1) • VS Code at C:\Users\Admin\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.80.0

[√] Connected device (3 available) • Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.19045.3930] • Chrome (web) • chrome • web-javascript • Google Chrome 120.0.6099.217 • Edge (web) • edge • web-javascript • Microsoft Edge 120.0.2210.91

[√] HTTP Host Availability • All required HTTP hosts are available

Error StackTrace -

I/flutter (32283): meeting_screen:getRoomToken:response.data
I/flutter (32283): eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlrZXkiOiI5MDFkMmNkMi0xOWRjLTQ0YjctYTkyMS1iMWZmNTI0MzRjZmUiLCJwZXJtaXNzaW9ucyI6WyJhbGxvd19qb2luIiwiYWxsb3dfbW9kIl0sInZlcnNpb24iOjIsInJvb21JZCI6Imowa2YtNDR2NS1veG5tIiwiaWF0IjoxNzA1MjIwNDU1LCJleHAiOjE3MDUyMjEwNTV9.kVQ-wultNO9leEE-tLBvV-W3uRTVRBRNmaPTE3Q-kZw
D/FlutterWebRTCPlugin(32283): onConnectionChangeCLOSED
I/flutter (32283): generateProfileLevelIdForAnswer() | result: [profile:1, level:31
I/FlutterWebRTCPlugin(32283): getUserMedia(audio): mandatory: [googEchoCancellation2: true, googNoiseSuppression: true, echoCancellation: true, googAutoGainControl: true, googDAEchoCancellation: true, googEchoCancellation: true], optional: [sourceId: 0]
D/FlutterWebRTCPlugin(32283): MediaStream id: 7f9f4300-abfa-4a72-a188-09c3f76fa9e9
D/FlutterWebRTCPlugin(32283): addStreamcom.cloudwebrtc.webrtc.utils.AnyThreadResult@77ebd34
I/FlutterWebRTCPlugin(32283): getUserMedia(video): ConstraintsMap{mMap={frameRate=30, facingMode=user, width=1280, optional=[{sourceId=1}], height=720}}
D/FlutterWebRTCPlugin(32283): Creating video capturer using Camera2 API.
D/FlutterWebRTCPlugin(32283): create user specified camera 1 succeeded
D/FlutterWebRTCPlugin(32283): changeCaptureFormat: 1280x720@30
D/FlutterWebRTCPlugin(32283): MediaStream id: b9a41c6f-7b9b-44fd-ac45-6989a0539471
I/flutter (32283): type 'MultiChildLayoutParentData' is not a subtype of type 'FlexParentData' in type cast
D/FlutterWebRTCPlugin(32283): CameraEventsHandler.onCameraOpening: cameraName=1
I/flutter (32283): #0      Flexible.applyParentData (package:flutter/src/widgets/basic.dart:5030)
I/flutter (32283): #1      RenderObjectElement._updateParentData (package:flutter/src/widgets/framework.dart:6061)
I/flutter (32283): #2      RenderObjectElement.attachRenderObject (package:flutter/src/widgets/framework.dart:6082)
I/flutter (32283): #3      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5751)
I/flutter (32283): #4      SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6299)
I/flutter (32283): #5      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
I/flutter (32283): #6      Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
I/flutter (32283): #7      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #8      Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #9      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
I/flutter (32283): #10     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
I/flutter (32283): #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
I/flutter (32283): #12     Element.updateChild (package:flutter/src/widgets/framework.dart:3586)
I/flutter (32283): #13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #14     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #15     StatelessElement.update (package:flutter/src/widgets/framework.dart:4956)
I/flutter (32283): #16     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #17     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #18     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #19     StatelessElement.update (package:flutter/src/widgets/framework.dart:4956)
I/flutter (32283): #20     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #21     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #22     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #23     StatelessElement.update (package:flutter/src/widgets/framework.dart:4956)
I/flutter (32283): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #26     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #27     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #28     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #30     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #31     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #32     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #33     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5904)
I/flutter (32283): #34     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6460)
I/flutter (32283): #35     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #36     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #37     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #38     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #39     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #41     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): #42     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #43     StatefulElement.update (package:flutter/src/widgets/framework.dart:5082)
I/flutter (32283): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #45     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #46     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): #47     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #48     StatefulElement.update (package:flutter/src/widgets/framework.dart:5082)
I/flutter (32283): #49     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #50     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #51     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #52     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #53     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #54     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #55     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): #56     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #57     StatefulElement.update (package:flutter/src/widgets/framework.dart:5082)
I/flutter (32283): #58     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #59     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307)
I/flutter (32283): #60     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #62     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #63     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #64     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #65     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307)
I/flutter (32283): #66     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #68     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): #69     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #70     StatefulElement.update (package:flutter/src/widgets/framework.dart:5082)
I/flutter (32283): #71     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #73     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): #74     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #75     StatefulElement.update (package:flutter/src/widgets/framework.dart:5082)
I/flutter (32283): #76     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #77     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #78     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #79     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #80     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #81     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #82     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #83     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #84     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #85     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #86     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #87     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #88     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #89     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #90     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): #91     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #92     StatefulElement.update (package:flutter/src/widgets/framework.dart:5082)
I/flutter (32283): #93     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #94     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #95     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
I/flutter (32283): #96     ProxyElement.update (package:flutter/src/widgets/framework.dart:5228)
I/flutter (32283): #97     Element.updateChild (package:flutter/src/widgets/framework.dart:3570)
I/flutter (32283): #98     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
I/flutter (32283): #99     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
I/flutter (32283): Another exception was thrown: Instance of 'DiagnosticsProperty<void>'
I/flutter (32283): Another exception was thrown: Instance of 'DiagnosticsProperty<void>'
D/FlutterWebRTCPlugin(32283): onIceGatheringChangeGATHERING
D/FlutterWebRTCPlugin(32283): onIceCandidate
D/FlutterWebRTCPlugin(32283): onIceCandidate
D/FlutterWebRTCPlugin(32283): onIceCandidate
D/FlutterWebRTCPlugin(32283): onConnectionChangeCONNECTING
D/FlutterWebRTCPlugin(32283): onIceCandidate
D/FlutterWebRTCPlugin(32283): onSelectedCandidatePairChanged
D/FlutterWebRTCPlugin(32283): onIceGatheringChangeCOMPLETE
D/FlutterWebRTCPlugin(32283): addStreamcom.cloudwebrtc.webrtc.utils.AnyThreadResult@307fdc9
D/FlutterWebRTCPlugin(32283): onConnectionChangeCONNECTED
D/FlutterWebRTCPlugin(32283): CameraEventsHandler.onFirstFrameAvailable
W/FlutterWebRTCPlugin(32283): FlutterRTCVideoRenderer.setVideoTrack, set video track to 5cf5d1ec-011d-4d90-bfdd-4d5523dc3e9a

RudrThakur avatar Jan 14 '24 08:01 RudrThakur

P.S - working fine in debug mode in emulator, but breaks on a real device(Samsung S20FE)

RudrThakur avatar Jan 14 '24 08:01 RudrThakur

@RudrThakur, We will check and let you know.

ishabodiwala avatar Jan 15 '24 06:01 ishabodiwala

Let me also check if upgrading dart helps anything

EDIT - Didn't work with dart 3 either

EDIT2 - Hey, turns out you cannot use random widgets wrapping your participant tile

return Stack(
                  children: [
                    Expanded(
                      child: Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: ParticipantTile(
                            key: Key(participants.values.first.id),
                            participant: participants.values.first),
                      ),
                    ),
                    MeetingControls(
                      onToggleMicButtonPressed: () {
                        micEnabled ? _room.muteMic() : _room.unmuteMic();
                        micEnabled = !micEnabled;
                      },
                      onToggleCameraButtonPressed: () {
                        camEnabled ? _room.disableCam() : _room.enableCam();
                        camEnabled = !camEnabled;
                      },
                      onLeaveButtonPressed: () {
                        _room.leave();
                      },
                    ),
                  ],
                );

I just replaced Stack with a Column and everything works fine! But we should be able to put the meeting controls on top of the participant tile as its required in my use case.

return Column(
                  children: [
                    Expanded(
                      child: ParticipantTile(
                          key: Key(participants.values.first.id),
                          participant: participants.values.first),
                    ),
                    MeetingControls(
                      onToggleMicButtonPressed: () {
                        micEnabled ? _room.muteMic() : _room.unmuteMic();
                        micEnabled = !micEnabled;
                      },
                      onToggleCameraButtonPressed: () {
                        camEnabled ? _room.disableCam() : _room.enableCam();
                        camEnabled = !camEnabled;
                      },
                      onLeaveButtonPressed: () {
                        _room.leave();
                      },
                    ),
                  ],
                );

RudrThakur avatar Jan 15 '24 13:01 RudrThakur