Skip to content
This repository has been archived by the owner on Jan 2, 2024. It is now read-only.

The RenderTree class does not implement "computeDryLayout" #83

Open
expz opened this issue Mar 28, 2021 · 1 comment
Open

The RenderTree class does not implement "computeDryLayout" #83

expz opened this issue Mar 28, 2021 · 1 comment
Labels
bug Something isn't working

Comments

@expz
Copy link

expz commented Mar 28, 2021

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 expz added the bug Something isn't working label Mar 28, 2021
@github-actions
Copy link
Contributor

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

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Development

No branches or pull requests

1 participant