flutter_eval icon indicating copy to clipboard operation
flutter_eval copied to clipboard

Imports not working

Open KPS250 opened this issue 1 year ago • 1 comments

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)

KPS250 avatar Oct 25 '24 04:10 KPS250

I have this issue.

ali-1989 avatar Apr 05 '25 14:04 ali-1989