Closed yjoo9317 closed 4 years ago
Hi @yjoo9317, sorry to hear about that. I think I see what happened. We revved the SDK as the library was already using features that were in the newer SDK which we weren't properly depending on in the pubspec. The right thing to do there would've been to combine that change with a major version change, which is unfortunate but I think necessary. Let me know if you have further recommendations, we definitely don't want to break builds.
Sorry about that, we'll be more careful in the future.
Thanks @luigi-rosso for quick response. We've taken care of it and don't have any problem with build. So please do what do you think is best. I just want you guys to know what happened on our end. But still, flare is great!!
@luigi-rosso @yjoo9317 Thanks for the insight. Very timely for us!
What's the recommended workaround, please? Our pubspec.yaml
contains:
flare_flutter: 1.6.2
But flare_dart-2.3.2
is referenced during the build:
Compiler message:
../../../../../../.pub-cache/hosted/pub.dartlang.org/flare_flutter-1.6.2/lib/flare.dart:659:7: Error: The non-abstract class 'FlutterActor' is missing implementations for these members:
- Actor.makeDropShadow
- Actor.makeInnerShadow
- Actor.makeLayerEffectRenderer
Try to either
- provide an implementation,
- inherit an implementation from a superclass or mixin,
- mark the class as abstract, or
- provide a 'noSuchMethod' implementation.
class FlutterActor extends Actor {
^^^^^^^^^^^^
../../../../../../.pub-cache/hosted/pub.dartlang.org/flare_dart-2.3.2/lib/actor.dart:108:19: Context: 'Actor.makeDropShadow' is defined here.
ActorDropShadow makeDropShadow();
^^^^^^^^^^^^^^
../../../../../../.pub-cache/hosted/pub.dartlang.org/flare_dart-2.3.2/lib/actor.dart:110:20: Context: 'Actor.makeInnerShadow' is defined here.
ActorInnerShadow makeInnerShadow();
^^^^^^^^^^^^^^^
../../../../../../.pub-cache/hosted/pub.dartlang.org/flare_dart-2.3.2/lib/actor.dart:112:28: Context: 'Actor.makeLayerEffectRenderer' is defined here.
ActorLayerEffectRenderer makeLayerEffectRenderer();
^^^^^^^^^^^^^^^^^^^^^^^
Compiler terminated unexpectedly.
@thetanz-geoff
The quickest solution would be adding
flare_dart : 2.2.5
BEFORE flare_flutter : 1.6.2
Do NOT add ^
While building, it will get flare dart 2.2.5 version first.
Thanks for the speedy reply, @yjoo9317. This is indeed the approach we took. It's working for us but it's great to have affirmation!
Hi @luigi-rosso
We'd been using flare 1.6.5 since we couldn't update flutter SDK to the latest for internal reasons and suddenly we got a build break a week ago. Apparently, the recent flare_dart upgrade (to 2.3.?, I guess) was causing the break as our build system starts fresh builds. Since the flare spec points to flare_dart ^2.2.X and our build system picked flare_dart 2.3.0 which requires additional interface implementation for actor class. If flare_dart upgrade can cause the build break, then it should be carefully delivered to avoid any possible breakage for existing flare versions. Thanks.