Skip to content

[FR]: Conditionally bundling assets based on flavor #494

Closed
@MerlijnClaeys

Description

@MerlijnClaeys

Is there an existing issue for this?

  • I have searched the existing issues

Version

5.4.0

Command type

build_runner (Default)

What happened?

With the new flutter version 3.19, conditionally bundling assets based on flavor was introduced. As the name suggests, this allows for bundling assets contionally based on flavor of the app. docs

When using flutter_gen to build assets I get the following exception:

FlutterGen v5.4.0 Loading ... my-app/pubspec.yaml Unhandled exception: CheckedFromJsonException Could not createFlutter. There is a problem with "assets". type 'YamlMap' is not a subtype of type 'String' in type cast #0 $checkedConvert (package:json_annotation/src/checked_helpers.dart:91:5) #1 $checkedCreate.checkedConvert (package:json_annotation/src/checked_helpers.dart:28:7) #2 _$FlutterFromJson.<anonymous closure> (package:flutter_gen_core/settings/pubspec.g.dart:38:34) #3 $checkedCreate.<anonymous closure> (package:json_annotation/src/checked_helpers.dart:33:22) #4 $checkedNew (package:json_annotation/src/checked_helpers.dart:51:23) #5 $checkedCreate (package:json_annotation/src/checked_helpers.dart:30:10) #6 _$FlutterFromJson (package:flutter_gen_core/settings/pubspec.g.dart:29:40) #7 new Flutter.fromJson (package:flutter_gen_core/settings/pubspec.dart:40:41) #8 _$PubspecFromJson.<anonymous closure>.<anonymous closure> (package:flutter_gen_core/settings/pubspec.g.dart:22:57) #9 $checkedConvert (package:json_annotation/src/checked_helpers.dart:87:20) #10 $checkedCreate.checkedConvert (package:json_annotation/src/checked_helpers.dart:28:7) #11 _$PubspecFromJson.<anonymous closure> (package:flutter_gen_core/settings/pubspec.g.dart:22:30) #12 $checkedCreate.<anonymous closure> (package:json_annotation/src/checked_helpers.dart:33:22) #13 $checkedNew (package:json_annotation/src/checked_helpers.dart:51:23) #14 $checkedCreate (package:json_annotation/src/checked_helpers.dart:30:10) #15 _$PubspecFromJson (package:flutter_gen_core/settings/pubspec.g.dart:9:40) #16 new Pubspec.fromJson (package:flutter_gen_core/settings/pubspec.dart:15:41) #17 loadPubspecConfig (package:flutter_gen_core/settings/config.dart:28:27) #18 loadPubspecConfigOrNull (package:flutter_gen_core/settings/config.dart:34:12) #19 FlutterGenerator.build (package:flutter_gen_core/flutter_generator.dart:25:16) #20 main (file:///Users/myuser/.pub-cache/hosted/pub.dev/flutter_gen-5.4.0/bin/flutter_gen_command.dart:48:49) #21 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:294:33) #22 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)

How my assets are defined in pubspec.yaml

`
flutter:
uses-material-design: true

# To add assets to your application, add an assets section, like this:
assets:
    - path: assets/sandbox/
      flavors:
          - sandbox
    - path: assets/production/
      flavors:
          - production

`

is this not supported?

Relevant a pubspec.yaml.

flutter_gen:
    output: lib/gen/ # Optional (default: lib/gen/)
    line_length: 80 # Optional (default: 80)

    # Optional
    integrations:
        flutter_svg: true
        flare_flutter: true
        rive: true
        lottie: true

flutter:

    uses-material-design: true

    assets:
        - path: assets/sandbox/
          flavors:
              - sandbox
        - path: assets/production/
          flavors:
              - production

Relevant log output

FlutterGen v5.4.0 Loading ... my-app/pubspec.yaml
Unhandled exception:
CheckedFromJsonException
Could not create `Flutter`.
There is a problem with "assets".
type 'YamlMap' is not a subtype of type 'String' in type cast
#0      $checkedConvert (package:json_annotation/src/checked_helpers.dart:91:5)
#1      $checkedCreate.checkedConvert (package:json_annotation/src/checked_helpers.dart:28:7)
#2      _$FlutterFromJson.<anonymous closure> (package:flutter_gen_core/settings/pubspec.g.dart:38:34)
#3      $checkedCreate.<anonymous closure> (package:json_annotation/src/checked_helpers.dart:33:22)
#4      $checkedNew (package:json_annotation/src/checked_helpers.dart:51:23)
#5      $checkedCreate (package:json_annotation/src/checked_helpers.dart:30:10)
#6      _$FlutterFromJson (package:flutter_gen_core/settings/pubspec.g.dart:29:40)
#7      new Flutter.fromJson (package:flutter_gen_core/settings/pubspec.dart:40:41)
#8      _$PubspecFromJson.<anonymous closure>.<anonymous closure> (package:flutter_gen_core/settings/pubspec.g.dart:22:57)
#9      $checkedConvert (package:json_annotation/src/checked_helpers.dart:87:20)
#10     $checkedCreate.checkedConvert (package:json_annotation/src/checked_helpers.dart:28:7)
#11     _$PubspecFromJson.<anonymous closure> (package:flutter_gen_core/settings/pubspec.g.dart:22:30)
#12     $checkedCreate.<anonymous closure> (package:json_annotation/src/checked_helpers.dart:33:22)
#13     $checkedNew (package:json_annotation/src/checked_helpers.dart:51:23)
#14     $checkedCreate (package:json_annotation/src/checked_helpers.dart:30:10)
#15     _$PubspecFromJson (package:flutter_gen_core/settings/pubspec.g.dart:9:40)
#16     new Pubspec.fromJson (package:flutter_gen_core/settings/pubspec.dart:15:41)
#17     loadPubspecConfig (package:flutter_gen_core/settings/config.dart:28:27)
#18     loadPubspecConfigOrNull (package:flutter_gen_core/settings/config.dart:34:12)
#19     FlutterGenerator.build (package:flutter_gen_core/flutter_generator.dart:25:16)
#20     main (file:///Users/myuser/.pub-cache/hosted/pub.dev/flutter_gen-5.4.0/bin/flutter_gen_command.dart:48:49)
#21     _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:294:33)
#22     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions