xvrh / lottie-flutter

Render After Effects animations natively on Flutter. This package is a pure Dart implementation of a Lottie player.
https://pub.dev/packages/lottie
MIT License
1.15k stars 197 forks source link

range error #284

Open akhilgorantala opened 1 year ago

akhilgorantala commented 1 year ago

The following RangeError was thrown during paint(): RangeError (index): Invalid value: Not in inclusive range 0..4: 5

The relevant error-causing widget was: RawLottie RawLottie:file:///Users/ghmapps/.pub-cache/hosted/pub.dev/lottie-2.4.0/lib/src/lottie.dart:377:16 When the exception was thrown, this was the stack:

0 List._setIndexed (dart:core-patch/array.dart:185:48)

1 List.[]= (dart:core-patch/array.dart:180:5)

2 GradientColor.lerp (package:lottie/src/model/content/gradient_color.dart:20:16)

3 GradientColorKeyframeAnimation.getValue (package:lottie/src/animation/keyframe/gradient_color_keyframe_animation.dart:20:20)

4 BaseKeyframeAnimation.value (package:lottie/src/animation/keyframe/base_keyframe_animation.dart:122:15)

5 GradientFillContent._getLinearGradient (package:lottie/src/animation/content/gradient_fill_content.dart:175:41)

6 GradientFillContent.draw (package:lottie/src/animation/content/gradient_fill_content.dart:113:18)

7 ContentGroup.draw (package:lottie/src/animation/content/content_group.dart:179:17)

8 ContentGroup.draw (package:lottie/src/animation/content/content_group.dart:179:17)

9 ShapeLayer.drawLayer (package:lottie/src/model/layer/shape_layer.dart:31:19)

10 BaseLayer.draw (package:lottie/src/model/layer/base_layer.dart:234:7)

11 CompositionLayer.drawLayer (package:lottie/src/model/layer/composition_layer.dart:104:13)

12 BaseLayer.draw (package:lottie/src/model/layer/base_layer.dart:196:7)

13 LottieDrawable.draw (package:lottie/src/lottie_drawable.dart:168:23)

14 RenderLottie.paint (package:lottie/src/render_lottie.dart:214:16)

15 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3059:7)

16 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:253:13)

17 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:146:15)

18 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3059:7)

19 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:169:11)

20 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:112:5)

21 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1147:31)

22 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:494:19)

23 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:905:13)

24 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)

25 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15)

26 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1214:9)

27 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1072:5)

28 _invoke (dart:ui/hooks.dart:142:13)

29 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)

30 _drawFrame (dart:ui/hooks.dart:112:31)

The following RenderObject was being processed when the exception was fired: RenderLottie#a34e8 relayoutBoundary=up3 ... parentData: (can use size) ... constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity) ... size: Size(360.0, 288.0) ... composition: LottieComposition: Size Control Mask Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, ShapeFill{color=, fillEnabled=false}, Instance of 'AnimatableTransform']} Race Ellipse Parents: Size Control
Shapes: ShapeGroup{name: 'Ellipse 1' Shapes: [Instance of 'CircleShape', Instance of 'GradientFill', Instance of 'AnimatableTransform']} Mask 2 Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, Instance of 'GradientFill', Instance of 'AnimatableTransform']}

... alignment: Alignment.center RenderObject: RenderLottie#a34e8 relayoutBoundary=up3 parentData: (can use size) constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity) size: Size(360.0, 288.0) composition: LottieComposition: Size Control Mask Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, ShapeFill{color=, fillEnabled=false}, Instance of 'AnimatableTransform']} Race Ellipse Parents: Size Control
Shapes: ShapeGroup{name: 'Ellipse 1' Shapes: [Instance of 'CircleShape', Instance of 'GradientFill', Instance of 'AnimatableTransform']} Mask 2 Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, Instance of 'GradientFill', Instance of 'AnimatableTransform']}

alignment: Alignment.center

======== Exception caught by rendering library ===================================================== The following _TypeError was thrown during paint(): Null check operator used on a null value

The relevant error-causing widget was: Column Column:file:///Users/ghmapps/StudioProjects/animation_lottie/lib/animation_page.dart:25:13 When the exception was thrown, this was the stack:

0 BaseKeyframeAnimation.value (package:lottie/src/animation/keyframe/base_keyframe_animation.dart:111:29)

1 GradientFillContent._getLinearGradient (package:lottie/src/animation/content/gradient_fill_content.dart:175:41)

2 GradientFillContent.draw (package:lottie/src/animation/content/gradient_fill_content.dart:113:18)

3 ContentGroup.draw (package:lottie/src/animation/content/content_group.dart:179:17)

4 ContentGroup.draw (package:lottie/src/animation/content/content_group.dart:179:17)

5 ShapeLayer.drawLayer (package:lottie/src/model/layer/shape_layer.dart:31:19)

6 BaseLayer.draw (package:lottie/src/model/layer/base_layer.dart:234:7)

7 CompositionLayer.drawLayer (package:lottie/src/model/layer/composition_layer.dart:104:13)

8 BaseLayer.draw (package:lottie/src/model/layer/base_layer.dart:196:7)

9 LottieDrawable.draw (package:lottie/src/lottie_drawable.dart:168:23)

10 RenderLottie.paint (package:lottie/src/render_lottie.dart:214:16)

11 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3059:7)

12 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:253:13)

13 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:146:15)

14 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3059:7)

15 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:169:11)

16 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:112:5)

17 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1147:31)

18 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:494:19)

19 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:905:13)

20 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)

21 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15)

22 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1214:9)

23 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:939:7)

27 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)

(elided 3 frames from class _Timer and dart:async-patch) The following RenderObject was being processed when the exception was fired: RenderLottie#a34e8 relayoutBoundary=up3 ... parentData: (can use size) ... constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity) ... size: Size(360.0, 288.0) ... composition: LottieComposition: Size Control Mask Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, ShapeFill{color=, fillEnabled=false}, Instance of 'AnimatableTransform']} Race Ellipse Parents: Size Control
Shapes: ShapeGroup{name: 'Ellipse 1' Shapes: [Instance of 'CircleShape', Instance of 'GradientFill', Instance of 'AnimatableTransform']} Mask 2 Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, Instance of 'GradientFill', Instance of 'AnimatableTransform']}

... alignment: Alignment.center RenderObject: RenderLottie#a34e8 relayoutBoundary=up3 parentData: (can use size) constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity) size: Size(360.0, 288.0) composition: LottieComposition: Size Control Mask Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, ShapeFill{color=, fillEnabled=false}, Instance of 'AnimatableTransform']} Race Ellipse Parents: Size Control
Shapes: ShapeGroup{name: 'Ellipse 1' Shapes: [Instance of 'CircleShape', Instance of 'GradientFill', Instance of 'AnimatableTransform']} Mask 2 Parents: Size Control
Shapes: ShapeGroup{name: 'Group 1' Shapes: [ShapePath{name=Path 1, index=0}, Instance of 'GradientFill', Instance of 'AnimatableTransform']}

alignment: Alignment.center

xvrh commented 1 year ago

@akhilgorantala can you share your animation file?

akhilgorantala commented 1 year ago

https://lottie.host/2d120d8b-06d2-4ab2-8441-ac6cd882db88/Ue9JEyKmjZ.json

xvrh commented 1 year ago

I can fix the crash easily but then I hit another issue with the colors not being correct. So I still investigate