cannot register class in 'package' through 'Get it' in flutter

Viewed 647

I have used 'Get it' for DI in my project and it worked fine before modularizing the project. When modularizing, I moved 'firestore' services into 'packages/user_repo/lib/src/services' folder as follows. My 'locator' is in the main project. But when I run the project it throws the following error. I am not sure whether the programme can register classes which are located in the external 'packages'. Does anybody know where it gets wrong?

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building StartUpView:
Object/factory with  type AuthenticationService is not registered inside GetIt.
(Did you accidentally do GetIt sl=GetIt.instance(); instead of GetIt sl=GetIt.instance;
Did you forget to register it?)
'package:get_it/get_it_impl.dart':
Failed assertion: line 372 pos 7: 'instanceFactory != null'

The relevant error-causing widget was:
  StartUpView
  StartUpView:file:///Users/StudioProjects/yellow_lister/lib/main.dart:57:17

When the exception was thrown, this was the stack:
#2      _GetItImplementation._findFactoryByNameAndType (package:get_it/get_it_impl.dart:372:7)
#3      _GetItImplementation.get (package:get_it/get_it_impl.dart:393:29)
#4      _GetItImplementation.call (package:get_it/get_it_impl.dart:430:12)
#5      new StartUpViewModel (package:yellow_lister/models/view_models/startup_vm.dart:13:14)
#6      StartUpView.build.<anonymous closure> (package:yellow_lister/views/startup_v.dart:12:33)
#7      _ViewModelBuilderState._createViewModel (package:stacked/src/state_management/view_model_builder.dart:102:41)
#8      _ViewModelBuilderState.initState (package:stacked/src/state_management/view_model_builder.dart:93:7)
#9      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4723:57)
#10     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4556:5)
...     Normal element mounting (30 frames)
#40     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3631:14)
#41     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6251:36)
#42     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6262:32)
...     Normal element mounting (173 frames)
#215    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3631:14)
#216    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6251:36)
#217    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6262:32)
...     Normal element mounting (83 frames)
#300    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3631:14)
#301    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6251:36)
#302    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6262:32)
...     Normal element mounting (173 frames)
#475    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3631:14)
#476    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6251:36)
#477    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6262:32)
...     Normal element mounting (377 frames)
#854    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3631:14)
#855    Element.updateChild (package:flutter/src/widgets/framework.dart:3383:18)
#856    _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:137:18)
#857    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2531:19)
#858    _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:154:12)
#859    RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1968:59)
#860    PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:916:15)
#861    RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1968:14)
#862    RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:228:7)
#863    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:317:5)
#864    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#865    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:319:14)
#866    RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#867    RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
#868    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1713:7)
#869    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:885:18)
#870    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
#871    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#872    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#873    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1148:15)
#874    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1084:9)
#875    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
(elided 13 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)

enter image description here

locator.dart :

import 'package:user_repo/user_repo.dart';

final locator = GetIt.instance;
void setupLocator() {
locator.registerLazySingleton<DatabaseRepository>(() =>FirestoreRepo());
}

user_repo.dart:

library user_repo;
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
part 'src/services/firestore_repo.dart';
0 Answers
Related