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)
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';
