-
Notifications
You must be signed in to change notification settings - Fork 29.2k
Closed
flutter/plugins
#4390Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listd: examplesSample code and demosSample code and demosfound in release: 2.2Found to occur in 2.2Found to occur in 2.2found in release: 2.5Found to occur in 2.5Found to occur in 2.5p: webviewThe WebView pluginThe WebView pluginpackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.
Description
Running the example App supplied with the webview_flutter plugin throws a _CastError
.
Steps to Reproduce
- Clone the flutter/plugins repository:
git clone https://github.com/flutter/plugins.git
; - Change into the
plugins/packages/webview_flutter/webview_flutter
folder:cd ./plugins/packages/webview_flutter/webview_flutter
; - Download all required dependencies:
flutter pub get
; - Change into the
example
folder:cd example
; - Run the example project (on iOS or Android):
flutter run
Expected results:
The example App runs without showing any errors in the console.
Actual results:
The example App runs however the console does show the following _CastError
in the console logs:
The following _CastError was thrown building FutureBuilder<WebViewController>(dirty, state:
_FutureBuilderState<WebViewController>#b5005):
Null check operator used on a null value
The relevant error-causing widget was:
FutureBuilder<WebViewController>
FutureBuilder:file:///Users/maurits/Projects/Baseflow/Internal/Flutter/plugins/packages/webview_flutter/webview_flutter/example/lib/main.
dart:299:12
When the exception was thrown, this was the stack:
#0 NavigationControls.build.<anonymous closure> (package:webview_flutter_example/main.dart:305:59)
#1 _FutureBuilderState.build (package:flutter/src/widgets/async.dart:782:55)
#2 StatefulElement.build (package:flutter/src/widgets/framework.dart:4782:27)
#3 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4665:15)
#4 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11)
#5 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5)
#6 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5)
#7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11)
#8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5)
... Normal element mounting (7 frames)
#15 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#16 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36)
#17 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6344:32)
... Normal element mounting (19 frames)
#36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#37 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36)
#38 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6344:32)
... Normal element mounting (129 frames)
#167 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#168 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36)
#169 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6344:32)
... Normal element mounting (116 frames)
#285 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#286 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36)
#287 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6344:32)
... Normal element mounting (173 frames)
#460 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#461 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36)
#462 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6344:32)
... Normal element mounting (371 frames)
#833 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14)
#834 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18)
#835 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1198:16)
#836 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1167:5)
#837 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1112:18)
#838 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2573:19)
#839 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1111:13)
#840 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:944:7)
#841 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:924:7)
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
The exception is thrown on this line because it is trying to access the snapshot.data
from a FutureBuilder
that is not yet completed and thus is still null
. Trying to force this into a non-nullable variable using the bang (!
) operator is triggering the error.
I will be sending a PR with a fix soon.
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listd: examplesSample code and demosSample code and demosfound in release: 2.2Found to occur in 2.2Found to occur in 2.2found in release: 2.5Found to occur in 2.5Found to occur in 2.5p: webviewThe WebView pluginThe WebView pluginpackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.