Skip to content

'package:extended_text/src/extended/text_overflow_mixin.dart': Failed assertion: line 1309 pos 45: 'start <= end': is not true #184

Description

@JDongKhan

Version

15.0.2

Platforms

dart

Device Model

iPhone 15模拟器

flutter info

[✓] Flutter (Channel stable, 3.41.8, on macOS 26.4.1 25E253 darwin-arm64, locale zh-Hans-CN) [787ms]
    • Flutter version 3.41.8 on channel stable at /Users/jd/fvm/versions/3.41.8
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 02085feb3f (3 个月前), 2026-04-24 13:54:45 -0700
    • Engine revision 59aa584fdf
    • Dart version 3.11.5
    • DevTools version 2.54.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets, omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration

[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [4.4s]
    • Android SDK at /Users/jd/Documents/sdk/android-sdk-macosx
    • Emulator version 36.5.11.0 (build_id 15261927) (CL:N/A)
    • Platform android-36, build-tools 36.0.0
    • ANDROID_HOME = /Users/jd/Documents/sdk/android-sdk-macosx
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.9+-14787801-b1163.94)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 26.6) [2.9s]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 17F113
    • CocoaPods version 1.16.2

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

[✓] Connected device (5 available) [8.6s]
    • 公司的iPhone 12 mini (wireless) (mobile) • 00008101-000E20DC0C28001E            • ios            • iOS 17.3.1 21D61
    • 王金东的iPhone (wireless) (mobile)        • 00008101-001E518E21FA001E            • ios            • iOS 26.5.2 23F84
    • iPhone 15 (mobile)                    • CDB690EF-693F-49F0-BB7A-B3E899D14D08 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator)
    • macOS (desktop)                       • macos                                • darwin-arm64   • macOS 26.4.1 25E253 darwin-arm64
    • Chrome (web)                          • chrome                               • web-javascript • Google Chrome 148.0.7778.168
    ! Error: Browsing on the local area network for iPhone 12. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for 顾杰的iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
    ! Error: Browsing on the local area network for iPhone (7). Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources [565ms]
    • All expected network resources are available.

• No issues found!
Process finished with exit code 0

How to reproduce?

ExtendedText放到列表中,进入后不会报错,多次滑动就报错了

Logs

flutter: 'package:extended_text/src/extended/text_overflow_mixin.dart': Failed assertion: line 1309 pos 45: 'start <= end': is not true.
flutter: 
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:67:4)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:49:5)
#2      new _TextRange (package:extended_text/src/extended/text_overflow_mixin.dart:1309:45)
#3      _TextRange.copyWith (package:extended_text/src/extended/text_overflow_mixin.dart:1319:50)
#4      TextOverflowMixin._findNoOverflow (package:extended_text/src/extended/text_overflow_mixin.dart:491:38)
#5      TextOverflowMixin.layoutOverflow (package:extended_text/src/extended/text_overflow_mixin.dart:126:29)
#6      ExtendedRenderParagraph.performLayout (package:extended_text/src/extended/rendering/paragraph.dart:175:5)
#7      RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#8      ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#9      RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1275:26)
#10     RenderFlex.performLayout (package:flutter/src/rendering/flex.d<…>
flutter: ----------------------------------------------------

======== Exception caught by Flutter framework =====================================================
The following assertion was thrown:
'package:extended_text/src/extended/text_overflow_mixin.dart': Failed assertion: line 1309 pos 45: 'start <= end': is not true.

When the exception was thrown, this was the stack: 
#2      new _TextRange (package:extended_text/src/extended/text_overflow_mixin.dart:1309:45)
#3      _TextRange.copyWith (package:extended_text/src/extended/text_overflow_mixin.dart:1319:50)
#4      TextOverflowMixin._findNoOverflow (package:extended_text/src/extended/text_overflow_mixin.dart:491:38)
#5      TextOverflowMixin.layoutOverflow (package:extended_text/src/extended/text_overflow_mixin.dart:126:29)
#6      ExtendedRenderParagraph.performLayout (package:extended_text/src/extended/rendering/paragraph.dart:175:5)
#7      RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#8      ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#9      RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1275:26)
#10     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1329:32)
#11     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#12     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#13     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1275:26)
#14     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1329:32)
#15     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#16     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#17     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1237:28)
#18     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1329:32)
#19     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#20     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:262:12)
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#22     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:18)
#23     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:18)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:18)
#27     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#28     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:18)
#29     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:118:18)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#32     RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:520:13)
#33     RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:238:19)
#34     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:278:12)
#35     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#36     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:133:12)
#37     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:368:11)
#38     RenderObject.layout (package:flutter/src/rendering/object.dart:2768:7)
#39     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:673:13)
#40     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1684:12)
#41     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1575:20)
#42     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2616:7)
#43     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1174:18)
#44     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1187:15)
#45     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:629:23)
#46     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1304:13)
#47     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#48     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430:15)
#49     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345:9)
#50     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1198:5)
#54     _invoke (dart:ui/hooks.dart:358:10)
#55     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:444:5)
#56     _drawFrame (dart:ui/hooks.dart:328:31)
(elided 5 frames from class _AssertionError and dart:async)
====================================================================================================

Example code (optional)

ExtendedText(
      text,
      style: const TextStyle(fontWeight: FontWeight.bold),
      maxLines: 1,
      overflowWidget: const TextOverflowWidget(
        position: TextOverflowPosition.start,
        child: Text('...'),
      ),
    )

Contact

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions