Simple flutter_html widget compilation error

Custom Code
Resolved

Hello,

I have been trying to figure out how to make custom widgets, and as one of the examples, I just wanted to create a very simple HTML view widget. (Ultimately, I want to make a SelectableHtml widget, which is not implemented in FlutterFlow yet.) However, it throws an unknown error every time I try to compile it.

The code is very simple, as you can see:

// Automatic FlutterFlow imports
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/custom_code/widgets/index.dart'; // Imports other custom widgets
import '/flutter_flow/custom_functions.dart'; // Imports custom functions
import 'package:flutter/material.dart';
// Begin custom widget code
// DO NOT REMOVE OR MODIFY THE CODE ABOVE!

import 'package:flutter_html/flutter_html.dart';

class SelectableHtmlWidget extends StatefulWidget {
  const SelectableHtmlWidget({
    super.key,
    this.width,
    this.height,
  });

  final double? width;
  final double? height;

  @override
  State<SelectableHtmlWidget> createState() => _SelectableHtmlWidgetState();
}

class _SelectableHtmlWidgetState extends State<SelectableHtmlWidget> {
  @override
  Widget build(BuildContext context) {
    return Html(
      data: '<h3>H3 Header</h3> <p>Sample paragraph</p>',
      onLinkTap: (url, _, __, ___) => launchURL(url!),
    );
  }
}

Of course, I added flutter_html to the Pubspec dependencies too.

However, when I try to compile the code, I get a really long error message.

Thank you for your help in advance.

Here is the full error message:

Resolving dependencies...

chewie 1.0.0 (1.7.5 available)

csslib 0.17.3 (1.0.0 available)

! device_info_plus 9.1.0 (overridden) (10.0.1 available)

fl_chart 0.55.0 (0.66.2 available)

flutter_animate 4.1.1+1 (4.5.0 available)

flutter_html 2.1.2 (2.2.1 available)

flutter_layout_grid 1.0.6 (2.0.5 available)

flutter_markdown 0.6.18 (0.6.22 available)

flutter_math_fork 0.5.0 (0.7.2 available)

flutter_svg 0.23.0+1 (2.0.10+1 available)

font_awesome_flutter 10.6.0 (10.7.0 available)

geolocator 10.1.0 (11.0.0 available)

geolocator_web 2.2.1 (3.0.0 available)

go_router 7.1.1 (13.2.1 available)

google_fonts 6.1.0 (6.2.1 available)

! http 1.2.0 (overridden) (1.2.1 available)

intl 0.18.1 (0.19.0 available)

iregexp 0.1.1 (0.1.2 available)

js 0.6.7 (0.7.1 available)

json_path 0.6.2 (0.7.1 available)

material_color_utilities 0.8.0 (0.11.1 available)

meta 1.11.0 (1.12.0 available)

numerus 1.1.1 (2.2.0 available)

path_drawing 0.5.1+1 (1.0.1 available)

path_parsing 0.2.1 (1.0.1 available)

path_provider 2.0.14 (2.1.2 available)

path_provider_android 2.0.25 (2.2.2 available)

path_provider_foundation 2.2.2 (2.3.2 available)

path_provider_linux 2.1.11 (2.2.1 available)

path_provider_platform_interface 2.0.6 (2.1.2 available)

path_provider_windows 2.1.7 (2.2.1 available)

percent_indicator 4.2.2 (4.2.3 available)

petitparser 5.4.0 (6.0.2 available)

provider 6.0.5 (6.1.2 available)

rfc_6901 0.1.1 (0.2.0 available)

shared_preferences_foundation 2.3.4 (2.3.5 available)

shared_preferences_platform_interface 2.3.1 (2.3.2 available)

shared_preferences_web 2.2.1 (2.3.0 available)

sqflite 2.2.6 (2.3.2 available)

stop_watch_timer 3.0.2 (3.1.1 available)

table_calendar 3.0.9 (3.1.0 available)

timeago 3.2.2 (3.6.1 available)

url_launcher_web 2.2.3 (2.3.0 available)

! uuid 4.3.3 (overridden)

video_player_web 2.2.0 (2.3.0 available)

wakelock 0.4.0 (0.6.2 available)

wakelock_macos 0.1.0+3 (0.4.0 available)

wakelock_platform_interface 0.2.1+3 (0.3.0 available)

wakelock_web 0.2.0+3 (0.4.0 available)

web 0.4.2 (0.5.1 available)

webview_flutter 2.8.0 (4.7.0 available)

webview_flutter_android 2.10.4 (3.16.0 available)

webview_flutter_platform_interface 1.9.5 (2.10.0 available)

webview_flutter_wkwebview 2.9.5 (3.13.0 available)

xml 5.4.1 (6.5.0 available)

Got dependencies!

54 packages have newer versions incompatible with dependency constraints.

Try flutter pub outdated for more information.

Compiling lib/main.dart for the Web...

Compiling lib/main.dart for the Web... 43.2s

Target dart2js failed: ProcessException: Process exited abnormally with exit code 1:

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/layout_grid.dart:212:20:

Error: Inferred type argument 'AutoPlacement' doesn't conform to the bound 'Enum?' of the type variable 'T' on 'EnumProperty'.

- 'AutoPlacement' is from 'package:flutter_layout_grid/src/widgets/layout_grid.dart' ('/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/layout_grid.dart').

- 'Enum' is from 'dart:core'.

properties.add(EnumProperty('autoPlacement', autoPlacement));

^

/sdks/flutter/packages/flutter/lib/src/foundation/diagnostics.dart:2258:20:

Info: This is the type variable whose bound isn't conformed to.

class EnumProperty<T extends Enum?> extends DiagnosticsProperty<T> {

^

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/placement.dart:82:55:

Error: A value of type 'RenderObject?' can't be assigned to a variable of type 'AbstractNode?'.

- 'RenderObject' is from 'package:flutter/src/rendering/object.dart' ('/sdks/flutter/packages/flutter/lib/src/rendering/object.dart').

- 'AbstractNode' is from 'package:flutter/src/foundation/node.dart' ('/sdks/flutter/packages/flutter/lib/src/foundation/node.dart').

final AbstractNode? targetParent = renderObject.parent;

^

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/placement.dart:83:58:

Error: The method 'markNeedsPlacement' isn't defined for the class 'AbstractNode?'.

- 'AbstractNode' is from 'package:flutter/src/foundation/node.dart' ('/sdks/flutter/packages/flutter/lib/src/foundation/node.dart').

if (targetParent is RenderLayoutGrid) targetParent.markNeedsPlacement();

^^^^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/placement.dart:84:54:

Error: The method 'markNeedsLayout' isn't defined for the class 'AbstractNode?'.

- 'AbstractNode' is from 'package:flutter/src/foundation/node.dart' ('/sdks/flutter/packages/flutter/lib/src/foundation/node.dart').

if (targetParent is RenderObject) targetParent.markNeedsLayout();

^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/placement.dart:132:55:

Error: A value of type 'RenderObject?' can't be assigned to a variable of type 'AbstractNode?'.

- 'RenderObject' is from 'package:flutter/src/rendering/object.dart' ('/sdks/flutter/packages/flutter/lib/src/rendering/object.dart').

- 'AbstractNode' is from 'package:flutter/src/foundation/node.dart' ('/sdks/flutter/packages/flutter/lib/src/foundation/node.dart').

final AbstractNode? targetParent = renderObject.parent;

^

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/placement.dart:133:58:

Error: The method 'markNeedsPlacement' isn't defined for the class 'AbstractNode?'.

- 'AbstractNode' is from 'package:flutter/src/foundation/node.dart' ('/sdks/flutter/packages/flutter/lib/src/foundation/node.dart').

if (targetParent is RenderLayoutGrid) targetParent.markNeedsPlacement();

^^^^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/flutter_layout_grid-1.0.6/lib/src/widgets/placement.dart:134:54:

Error: The method 'markNeedsLayout' isn't defined for the class 'AbstractNode?'.

- 'AbstractNode' is from 'package:flutter/src/foundation/node.dart' ('/sdks/flutter/packages/flutter/lib/src/foundation/node.dart').

if (targetParent is RenderObject) targetParent.markNeedsLayout();

^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/chewie-1.0.0/lib/src/chewie_player.dart:144:18:

Error: Member not found: 'SystemChrome.setEnabledSystemUIOverlays'.

SystemChrome.setEnabledSystemUIOverlays(

^^^^^^^^^^^^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/chewie-1.0.0/lib/src/chewie_player.dart:157:20:

Error: Member not found: 'SystemChrome.setEnabledSystemUIOverlays'.

SystemChrome.setEnabledSystemUIOverlays(

^^^^^^^^^^^^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/chewie-1.0.0/lib/src/chewie_player.dart:161:20:

Error: Member not found: 'SystemChrome.setEnabledSystemUIOverlays'.

SystemChrome.setEnabledSystemUIOverlays([]);

^^^^^^^^^^^^^^^^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/chewie-1.0.0/lib/src/material_controls.dart:441:50:

Error: The getter 'accentColor' isn't defined for the class 'ThemeData'.

- 'ThemeData' is from 'package:flutter/src/material/theme_data.dart' ('/sdks/flutter/packages/flutter/lib/src/material/theme_data.dart').

playedColor: Theme.of(context).accentColor,

^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/chewie-1.0.0/lib/src/material_controls.dart:442:50:

Error: The getter 'accentColor' isn't defined for the class 'ThemeData'.

- 'ThemeData' is from 'package:flutter/src/material/theme_data.dart' ('/sdks/flutter/packages/flutter/lib/src/material/theme_data.dart').

handleColor: Theme.of(context).accentColor,

^^^^^^^^^^^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:186:20:

Error: The argument type 'void Function(TapDownDetails)' can't be assigned to the parameter type 'void Function(TapDragDownDetails)?'.

- 'TapDownDetails' is from 'package:flutter/src/gestures/tap.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap.dart').

- 'TapDragDownDetails' is from 'package:flutter/src/gestures/tap_and_drag.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap_and_drag.dart').

onTapDown: onTapDown,

^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:190:24:

Error: The argument type 'void Function(TapUpDetails)' can't be assigned to the parameter type 'void Function(TapDragUpDetails)?'.

- 'TapUpDetails' is from 'package:flutter/src/gestures/tap.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap.dart').

- 'TapDragUpDetails' is from 'package:flutter/src/gestures/tap_and_drag.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap_and_drag.dart').

onSingleTapUp: onSingleTapUp,

^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:195:26:

Error: The argument type 'void Function(TapDownDetails)' can't be assigned to the parameter type 'void Function(TapDragDownDetails)?'.

- 'TapDownDetails' is from 'package:flutter/src/gestures/tap.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap.dart').

- 'TapDragDownDetails' is from 'package:flutter/src/gestures/tap_and_drag.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap_and_drag.dart').

onDoubleTapDown: onDoubleTapDown,

^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:196:31:

Error: The argument type 'void Function(DragStartDetails)' can't be assigned to the parameter type 'void Function(TapDragStartDetails)?'.

- 'DragStartDetails' is from 'package:flutter/src/gestures/drag_details.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/drag_details.dart').

- 'TapDragStartDetails' is from 'package:flutter/src/gestures/tap_and_drag.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap_and_drag.dart').

onDragSelectionStart: onDragSelectionStart,

^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:197:32:

Error: The argument type 'void Function(DragStartDetails, DragUpdateDetails)' can't be assigned to the parameter type 'void Function(TapDragUpdateDetails)?'.

- 'DragStartDetails' is from 'package:flutter/src/gestures/drag_details.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/drag_details.dart').

- 'DragUpdateDetails' is from 'package:flutter/src/gestures/drag_details.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/drag_details.dart').

- 'TapDragUpdateDetails' is from 'package:flutter/src/gestures/tap_and_drag.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap_and_drag.dart').

onDragSelectionUpdate: onDragSelectionUpdate,

^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:198:29:

Error: The argument type 'void Function(DragEndDetails)' can't be assigned to the parameter type 'void Function(TapDragEndDetails)?'.

- 'DragEndDetails' is from 'package:flutter/src/gestures/drag_details.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/drag_details.dart').

- 'TapDragEndDetails' is from 'package:flutter/src/gestures/tap_and_drag.dart' ('/sdks/flutter/packages/flutter/lib/src/gestures/tap_and_drag.dart').

onDragSelectionEnd: onDragSelectionEnd,

^

/root/.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/handle_overlay.dart:60:40:

Error: Member not found: 'fadeDuration'.

duration: TextSelectionOverlay.fadeDuration, vsync: this);

^^^^^^^^^^^^

Error: Compilation failed.

Command: /sdks/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /sdks/flutter/bin/cache/dart-sdk/bin/snapshots/dart2js.dart.snapshot --platform-binaries=/sdks/flutter/bin/cache/flutter_web_sdk/kernel --invoker=flutter_tool -Ddart.vm.product=true -DFLUTTER_WEB_AUTO_DETECT=false -DFLUTTER_WEB_USE_SKIA=false -DFLUTTER_WEB_CANVASKIT_URL=https://www.gstatic.com/flutter-canvaskit/04817c99c9fd4956f27505204f7e344335810aed/ --native-null-assertions --no-source-maps -o /tmp/code_analysis/xbDxnfWWcxTXSVbz9rPj/custom_code_project/.dart_tool/flutter_build/49c5b010c8402a353c87d5d79f25fd1d/app.dill --packages=.dart_tool/package_config.json --cfe-only /tmp/code_analysis/xbDxnfWWcxTXSVbz9rPj/custom_code_project/.dart_tool/flutter_build/49c5b010c8402a353c87d5d79f25fd1d/main.dart

#0 RunResult.throwException (package:flutter_tools/src/base/process.dart:127:5)

Error: Failed to compile application for the Web.

What have you tried so far?

Tried all the different versions of flutter_html. Tried to add all dependencies one by one. Checked the code of the original HtmlView widget of flutterflow, which also utilizes flutter_html, and imports it the same way as I do.

Did you check FlutterFlow's Documentation for this topic?
Yes
2
1 reply