ditclear / dartin

A pragmatic lightweight dependency injection framework for Flutter developers.
https://medium.com/@ditclear/dartin-a-pragmatic-lightweight-dependency-injection-framework-for-flutter-developers-bbb57c47b31f
BSD 3-Clause "New" or "Revised" License
43 stars 4 forks source link

Crash on StartDartIn #1

Open iamsahilarora opened 4 years ago

iamsahilarora commented 4 years ago

[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: 'package:dartin/dartin.dart': Failed assertion: line 251 pos 10: '_dartIns != null': error: please use startDartIn method first

File : main.dart void main() { startDartIn([appModuleModule,repoModule,blocModule]); runApp(MyApp()); } File : AppModule.dart final appModuleModule = Module([single(NetworkUtil()), single(Preference()), single(ApiService(get<NetworkUtil>()))]);

final blocModule = Module([ lazy<AuthBloc>(({params}) => AuthBloc(get<UserRepository>())), ]);

final repoModule = Module([ single(UserRepository(get<ApiService>())), ]);

_dartIn !=null assertion is giving false as we called startDartIn at very first line of main function, /// get T from dartIns by T.runtimeType and params T get<T>({DartInScope scope, List params}) { assert(_dartIns != null, "error: please use startDartIn method first "); final result = _dartIns.value<T>(scope: scope ?? DartIns.defaultScope, params: params); assert(result != null, "error: not found $T in ${scope.toString()}"); return result; }

Stack Trace [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: 'package:dartin/dartin.dart': Failed assertion: line 246 pos 10: '_dartIns != null': error: please use startDartIn method first E/flutter ( 4757): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:40:39) E/flutter ( 4757): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5) E/flutter ( 4757): #2 get (package:dartin/dartin.dart:246:10) E/flutter ( 4757): #3 appModuleModule (package:bt_trucking/di/AppModule.dart:12:76) E/flutter ( 4757): #4 appModuleModule (package:bt_trucking/di/AppModule.dart:11:7) E/flutter ( 4757): #5 main (package:bt_trucking/main.dart:10:16) E/flutter ( 4757): #6 _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:229:25) E/flutter ( 4757): #7 _rootRun (dart:async/zone.dart:1124:13) E/flutter ( 4757): #8 _CustomZone.run (dart:async/zone.dart:1021:19) E/flutter ( 4757): #9 _runZoned (dart:async/zone.dart:1516:10) E/flutter ( 4757): #10 runZoned (dart:async/zone.dart:1500:12) E/flutter ( 4757): #11 _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:221:5) E/flutter ( 4757): #12 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:305:19) E/flutter ( 4757): #13 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12) E/flutter ( 4757):

Any help will be appreciated.

ditclear commented 4 years ago

Thanks to use Dartin , this issue happend when single(ApiService(get<NetworkUtil>()) execute .

you can use lazy replace single to solve this problem temporarily,and I will solve it as soon as possible.

ditclear commented 4 years ago

@iamsahilarora

ditclear commented 4 years ago

the bug has been fixed, you can update it to 0.1.5 @iamsahilarora