Skip to content

Imports not working #93

Description

@KPS250

Facing issues when we try to import custom widgets and library dependency imports.
Importing custom button widget gives error: import 'button.dart';

EvalExample.dart

import 'package:flutter/material.dart';
import 'package:flutter_eval/flutter_eval.dart';

class EvalExample extends StatelessWidget {
  const EvalExample({super.key});

  @override
  Widget build(BuildContext context) {
    return const CompilerWidget(
      packages: {
        'example': {
          'main.dart': '''
           import 'package:flutter/material.dart';
           import 'button.dart';
            
            class MyApp extends StatelessWidget {
            
              @override
              Widget build(BuildContext context) {
                return Scaffold(
                  body: Center(
                    child: Button(
                      label: 'Go Back',
                      onPressed: () {
                        Navigator.pop(context);
                      },
                    ),
                  ),
                );
              }
            }

            '''
        }
      },

      /// Specify which library (i.e. which file) to use as an entrypoint.
      library: 'package:example/main.dart',

      /// Specify which function to call as the entrypoint.
      /// To use a constructor, use "ClassName.constructorName" syntax. In
      /// this case we are calling a default constructor so the constructor
      /// name is blank.
      function: 'MyApp.',

      /// Specify the arguments to pass to the entrypoint. Generally these
      /// should be dart_eval [$Value] objects, but when invoking a static or
      /// top-level function or constructor, [int]s, [double]s, and [bool]s
      /// should be passed directly.
      args: [null],
    );
  }
}

Button.dart

import 'package:flutter/material.dart';

class Button extends StatelessWidget {
  final String label;
  final Color color;
  final double fontSize;
  final TextStyle textStyle;
  final Color textColor;
  final VoidCallback? onPressed;

  const Button({
    super.key,
    required this.label,
    this.textColor = Colors.white,
    this.fontSize = 16,
    this.textStyle = const TextStyle(fontStyle: FontStyle.normal),
    this.color = Colors.blueAccent,
    this.onPressed,
  });

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      style: ElevatedButton.styleFrom(
        backgroundColor: color,
      ),
      onPressed: onPressed,
      child: Text(
        label,
        style: textStyle.copyWith(fontSize: fontSize,color: textColor),
      ),
    );
  }
}

Error Log:

======== Exception caught by widgets library =======================================================
The following LateError was thrown building CompilerWidget(dirty, state: _CompilerWidgetState#bb4b4):
LateInitializationError: Field 'codeCache' has not been initialized.

The relevant error-causing widget was: 
  CompilerWidget CompilerWidget:file:///Users/kiranshinde/workspace/mobile/Flutter/my_flutter/apps/example_app/lib/screens/dynamic_poc.dart:10:18
When the exception was thrown, this was the stack: 
#0      _CompilerWidgetState.codeCache (package:flutter_eval/src/flutter_eval.dart)
#1      _CompilerWidgetState.build (package:flutter_eval/src/flutter_eval.dart:166:30)
#2      StatefulElement.build (package:flutter/src/widgets/framework.dart:5599:27)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5487:15)
#4      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#5      Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469:5)
#7      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5641:11)
#8      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463:5)
...     Normal element mounting (234 frames)
#242    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340:16)
#243    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6904:36)
#244    Element.updateChild (package:flutter/src/widgets/framework.dart:3849:18)
#245    Element.updateChildren (package:flutter/src/widgets/framework.dart:4036:32)
#246    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6929:17)
#247    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#248    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#249    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#250    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#251    StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#252    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#253    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#254    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#255    ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#256    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#257    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#258    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#259    ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#260    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:105:11)
#261    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#262    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#263    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#264    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#265    StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#266    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#267    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#268    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#269    ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#270    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:105:11)
#271    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#272    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#273    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#274    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#275    StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#276    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#277    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#278    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#279    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#280    StatefulElement.update (package:flutter/src/widgets/framework.dart:5673:5)
#281    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#282    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6776:14)
#283    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#284    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6776:14)
#285    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#286    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#287    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#288    ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#289    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#290    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#291    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#292    ProxyElement.update (package:flutter/src/widgets/framework.dart:5816:5)
#293    Element.updateChild (package:flutter/src/widgets/framework.dart:3827:15)
#294    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512:16)
#295    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650:11)
#296    Element.rebuild (package:flutter/src/widgets/framework.dart:5203:7)
#297    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2905:19)
#298    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1136:21)
#299    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:443:5)
#300    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1392:15)
#301    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1313:9)
#302    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1171:5)
#303    _invoke (dart:ui/hooks.dart:312:13)
#304    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419:5)
#305    _drawFrame (dart:ui/hooks.dart:283:31)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions