Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception if Text widget contains empty value #27356

Closed
Jardo-51 opened this issue Jan 31, 2019 · 3 comments
Closed

Exception if Text widget contains empty value #27356

Jardo-51 opened this issue Jan 31, 2019 · 3 comments
Labels
c: crash Stack traces logged to the console framework flutter/packages/flutter repository. See also f: labels.

Comments

@Jardo-51
Copy link

Jardo-51 commented Jan 31, 2019

Steps to Reproduce

Layout:

  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        ConstrainedBox(
          constraints: BoxConstraints(maxHeight: 50, minHeight: 50),
          child: Row (
            children: <Widget>[
              Expanded(
                child: Align(
                  alignment: Alignment.centerRight,
                  child: FittedBox(
                    fit: BoxFit.contain,
                    child: Text(_errorText),
                  )
                )
              )
            ],
          ),
        )
      ],
    );
  }

If field _errorText is set to empty string (""), I get the following exception:

Logs

I/flutter ( 4551): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 4551): The following assertion was thrown during performLayout():
I/flutter ( 4551): 'package:flutter/src/rendering/box.dart': Failed assertion: line 307 pos 12: 'width > 0.0': is not
I/flutter ( 4551): true.
I/flutter ( 4551): 
I/flutter ( 4551): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 4551): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 4551): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 4551):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter ( 4551): 
I/flutter ( 4551): When the exception was thrown, this was the stack:
I/flutter ( 4551): #2      BoxConstraints.constrainSizeAndAttemptToPreserveAspectRatio (package:flutter/src/rendering/box.dart:307:12)
I/flutter ( 4551): #3      RenderFittedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:2256:26)
I/flutter ( 4551): #4      RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4551): #5      RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:385:13)
I/flutter ( 4551): #6      RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4551): #7      RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:798:17)
I/flutter ( 4551): #8      RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4551): #9      RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:258:13)
I/flutter ( 4551): #10     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4551): #11     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
I/flutter ( 4551): #12     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4551): #13     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
I/flutter ( 4551): #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4551): #15     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
I/flutter ( 4551): #16     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:339:7)
I/flutter ( 4551): #17     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
I/flutter ( 4551): #18     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
I/flutter ( 4551): #19     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1509:7)
I/flutter ( 4551): #20     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:768:18)
I/flutter ( 4551): #21     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:281:19)
I/flutter ( 4551): #22     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:677:13)
I/flutter ( 4551): #23     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:219:5)
I/flutter ( 4551): #24     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter ( 4551): #25     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter ( 4551): #26     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
I/flutter ( 4551): #27     _invoke (dart:ui/hooks.dart:154:13)
I/flutter ( 4551): #28     _drawFrame (dart:ui/hooks.dart:143:3)
I/flutter ( 4551): (elided 2 frames from class _AssertionError)
I/flutter ( 4551): 
I/flutter ( 4551): The following RenderObject was being processed when the exception was fired:
I/flutter ( 4551):   RenderFittedBox#b8775 relayoutBoundary=up6 NEEDS-LAYOUT NEEDS-PAINT
I/flutter ( 4551):   creator: FittedBox ← Align ← Expanded ← Row ← ConstrainedBox ← Column ←
[Ô^Ü] Flutter (Channel stable, v1.0.0, on Microsoft Windows [Version 6.1.7601], locale sk-SK)
    ÔÇc Flutter version 1.0.0 at F:\Program files\flutter
    ÔÇc Framework revision 5391447fae (9 weeks ago), 2018-11-29 19:41:26 -0800
    ÔÇc Engine revision 7375a0f414
    ÔÇc Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[Ô^Ü] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    ÔÇc Android SDK at C:\Users\jardo\AppData\Local\Android\sdk
    ÔÇc Android NDK location not configured (optional; useful for native profiling support)
    ÔÇc Platform android-28, build-tools 28.0.3
    ÔÇc Java binary at: F:\Program files\Android Studio\jre\bin\java
    ÔÇc Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    ÔÇc All Android licenses accepted.

[Ô^Ü] Android Studio (version 3.3)
    ÔÇc Android Studio at F:\Program files\Android Studio
    ÔÇc Flutter plugin version 31.3.3
    ÔÇc Dart plugin version 182.5124
    ÔÇc Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[Ô^Ü] Connected device (1 available)
    ÔÇc Android SDK built for x86 ÔÇc emulator-5554 ÔÇc android-x86 ÔÇc Android 9 (API 28) (emulator)

ÔÇc No issues found!
@zoechi zoechi added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Jan 31, 2019
@zoechi
Copy link
Contributor

zoechi commented Jan 31, 2019

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: Column(
        children: <Widget>[
          ConstrainedBox(
            constraints: BoxConstraints(maxHeight: 50, minHeight: 50),
            child: Row(
              children: <Widget>[
                Expanded(
                    child: Align(
                        alignment: Alignment.centerRight,
                        child: FittedBox(
                          fit: BoxFit.contain,
                          child: Text(''),
                        )))
              ],
            ),
          )
        ],
      )),
    );
  }
}

Changing child: Text(''), to child: Text(' '), or child: Text('i'), fixes the error.

@zoechi zoechi added c: crash Stack traces logged to the console framework flutter/packages/flutter repository. See also f: labels. and removed waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds labels Jan 31, 2019
@zoechi zoechi added this to the Goals milestone Jan 31, 2019
@goderbauer
Copy link
Member

I just tried the code from above in dartpad and it doesn't crash anymore. Closing.

@lock
Copy link

lock bot commented Apr 4, 2020

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@lock lock bot locked and limited conversation to collaborators Apr 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: crash Stack traces logged to the console framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

No branches or pull requests

3 participants