CaTeX icon indicating copy to clipboard operation
CaTeX copied to clipboard

The RenderTree class does not implement "computeDryLayout"

Open expz opened this issue 3 years ago • 1 comments

Steps to Reproduce

  1. Run flutter create bug.
  2. Update the files as follows:
import 'package:catex/catex.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: IntrinsicHeight(
          child: RichText(
            text: TextSpan(
            children: [
              TextSpan(text: "testing: "),
              WidgetSpan(
                alignment: PlaceholderAlignment.middle,
                child: CaTeX(
                  r"n > 0",
                ),
              ),
            ],
          )),
        ),
      ),
    );
  }
}

pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
 catex: ^0.0.1+8
  1. Run the app on a simulator.

Expected results: Render testing: n > 0 in the center of the page.

Actual results: Error message saying The RenderTree class does not implement "computeDryLayout".

Logs
[ +239 ms] Syncing files to device iPhone 7...
[   +5 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +7 ms] <- recompile package:test_app/main.dart 04bfe32d-68ee-4c54-b69a-97e47992e218
[        ] <- 04bfe32d-68ee-4c54-b69a-97e47992e218
[ +111 ms] 
                    ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
                    The following assertion was thrown during performLayout():
                    The RenderTree class does not implement "computeDryLayout".
                    If you are not writing your own RenderBox subclass, then this is not
                    your fault. Contact support: https://github.com/flutter/flutter/issues/new?template=2_bug.md
                    
                    The relevant error-causing widget was:
                      IntrinsicHeight file:///Users/jonathan/Documents/src/apps/test_app/test_app/lib/main.dart:35:18
                    
                    When the exception was thrown, this was the stack:
                    #0      RenderBox.debugCannotComputeDryLayout.<anonymous closure>
(package:flutter/src/rendering/box.dart:1918:9)
                    #1      RenderBox.debugCannotComputeDryLayout (package:flutter/src/rendering/box.dart:1922:6)
                    #2      RenderBox.computeDryLayout (package:flutter/src/rendering/box.dart:1878:12)
                    #3      RenderBox._computeDryLayout (package:flutter/src/rendering/box.dart:1835:26)
                    #4      RenderBox.getDryLayout.<anonymous closure> (package:flutter/src/rendering/box.dart:1824:68)
                    #5      _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:311:23)
                    #6      RenderBox.getDryLayout (package:flutter/src/rendering/box.dart:1824:37)
                    #7      RenderProxyBoxMixin.computeDryLayout (package:flutter/src/rendering/proxy_box.dart:110:21)
                    #8      RenderBox._computeDryLayout (package:flutter/src/rendering/box.dart:1835:26)
                    #9      RenderBox.getDryLayout.<anonymous closure> (package:flutter/src/rendering/box.dart:1824:68)
                    #10     _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:311:23)
                    #11     RenderBox.getDryLayout (package:flutter/src/rendering/box.dart:1824:37)
                    #12     RenderParagraph._computeChildrenHeightWithMinIntrinsics
(package:flutter/src/rendering/paragraph.dart:435:31)
                    #13     RenderParagraph._computeIntrinsicHeight (package:flutter/src/rendering/paragraph.dart:337:5)
                    #14     RenderParagraph.computeMaxIntrinsicHeight
(package:flutter/src/rendering/paragraph.dart:349:12)
                    #15     RenderBox._computeIntrinsicDimension.<anonymous closure>
(package:flutter/src/rendering/box.dart:1377:23)
                    #16     _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:311:23)
                    #17     RenderBox._computeIntrinsicDimension (package:flutter/src/rendering/box.dart:1375:42)
                    #18     RenderBox.getMaxIntrinsicHeight (package:flutter/src/rendering/box.dart:1747:12)
                    #19     RenderFlex.computeMaxIntrinsicHeight.<anonymous closure>
(package:flutter/src/rendering/flex.dart:635:60)
                    #20     RenderFlex._getIntrinsicSize (package:flutter/src/rendering/flex.dart:594:58)
                    #21     RenderFlex.computeMaxIntrinsicHeight (package:flutter/src/rendering/flex.dart:632:12)
                    #22     RenderBox._computeIntrinsicDimension.<anonymous closure>
(package:flutter/src/rendering/box.dart:1377:23)
                    #23     _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:311:23)
                    #24     RenderBox._computeIntrinsicDimension (package:flutter/src/rendering/box.dart:1375:42)
                    #25     RenderBox.getMaxIntrinsicHeight (package:flutter/src/rendering/box.dart:1747:12)
                    #26     RenderIntrinsicHeight._computeSize (package:flutter/src/rendering/proxy_box.dart:795:38)
                    #27     RenderIntrinsicHeight.performLayout (package:flutter/src/rendering/proxy_box.dart:815:12)
                    #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #29     RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:430:14)
                    #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #31     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
                    #32     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:925:7)
                    #33     MultiChildLayoutDelegate._callPerformLayout
(package:flutter/src/rendering/custom_layout.dart:243:7)
                    #34     RenderCustomMultiChildLayoutBox.performLayout
(package:flutter/src/rendering/custom_layout.dart:407:14)
                    #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #36     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #37     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #38     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #39     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1371:11)
                    #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #41     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #42     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #43     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #44     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #45     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #46     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #47     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:54:11)
                    #48     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
                    #49     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
                    #50     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #51     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #53     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #54     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #55     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #56     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #57     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #58     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #59     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #60     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #61     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #62     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3362:13)
                    #63     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #64     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #65     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #66     _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:743:15)
                    #67     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #68     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #69     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #70     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #71     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #73     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #74     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #75     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:546:11)
                    #76     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #77     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #78     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #79     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:14)
                    #80     RenderObject.layout (package:flutter/src/rendering/object.dart:1784:7)
                    #81     RenderView.performLayout (package:flutter/src/rendering/view.dart:153:14)
                    #82     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1641:7)
                    #83     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:884:18)
                    #84     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
                    #85     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:874:13)
                    #86     RendererBinding._handlePersistentFrameCallback
(package:flutter/src/rendering/binding.dart:319:5)
                    #87     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
                    #88     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
                    #89     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure>
(package:flutter/src/scheduler/binding.dart:865:7)
                    (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
                    
                    The following RenderObject was being processed when the exception was fired:
RenderIntrinsicHeight#078c9
                    relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
                      creator: IntrinsicHeight ← Container ← Center ← _BodyBuilder ← MediaQuery ←
                        LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ←
                        AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#ba4ca ink renderer] ←
                        NotificationListener<LayoutChangedNotification> ← ⋯
                      parentData: offset=Offset(0.0, 0.0) (can use size)
                      constraints: BoxConstraints(0.0<=w<=375.0, 0.0<=h<=667.0)
                      size: MISSING
                    This RenderObject had the following descendants (showing up to depth 5):
                        child: RenderFlex#68de8 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                          child 1: RenderParagraph#76c4f NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                            text: TextSpan
                              TextSpan
                                TextSpan
                                WidgetSpan#bb6a1
                    ════════════════════════════════════════════════════════════════════════════════════════════════════
[  +30 ms] 
           Another exception was thrown: 'package:flutter/src/rendering/shifted_box.dart': Failed assertion: line 341 pos
12:
           'child!.hasSize': is not true.
[ +176 ms] Updating files.
[        ] DevFS: Sync finished
[   +3 ms] Syncing files to device iPhone 7... (completed in 333ms)
[   +1 ms] Synced 0.0MB.
[   +2 ms] <- accept
[  +16 ms] Connected to _flutterView/0x7fcda4027620.
[   +4 ms] Flutter run key commands.
[   +4 ms] r Hot reload. 🔥🔥🔥
[   +3 ms] R Hot restart.
[        ] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] An Observatory debugger and profiler on iPhone 7 is available at: http://127.0.0.1:62509/wHccPqIjt40=/
[   +1 ms] 
           Flutter DevTools, a Flutter debugger and profiler, on iPhone 7 is available at:
           http://127.0.0.1:9102?uri=http%3A%2F%2F127.0.0.1%3A62509%2FwHccPqIjt40%3D%2F
[        ] Running with unsound null safety
[        ] For more information see https://dart.dev/null-safety/unsound-null-safety
[  +30 ms] 
           Another exception was thrown: Updated layout information required for RenderFlex#68de8 NEEDS-LAYOUT NEEDS-PAINT
to
           calculate semantics.
[ +307 ms] 
                    Another exception was thrown: Bad state: Future already completed
Analyzing test_app...                                                   
No issues found! (ran in 7.5s)
[✓] Flutter (Channel stable, 2.0.2, on Mac OS X 10.15.6 19G2021 darwin-x64, locale fr-FR)
    • Flutter version 2.0.2 at /Users/jonathan/Documents/src/lib/flutter
    • Framework revision 8962f6dc68 (il y a 2 semaines), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/jonathan/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.48.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (2 available)
    • iPhone 7 (mobile) • 6408E65B-14DF-4C98-813A-CB237B985CA5 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • Chrome (web)      • chrome                               • web-javascript • unknown

• No issues found!

expz avatar Mar 28 '21 06:03 expz

Hi 👋🏽 Thank you for opening your first issue with CaTeX ❤

The project is currently on-hold. See the README for further information.

github-actions[bot] avatar Mar 28 '21 06:03 github-actions[bot]