Can't 运行 flutter web project in Release or Profile (Cannot read properties of null (reading 'isAsync'))
Can't run flutter web project in Release or Profile (Cannot read properties of null (reading 'isAsync'))
不能运行 发布或配置文件中的 flutter 项目。在调试中 运行s 通常没有任何问题,但在其他情况下我在 Chrome:
中收到这些错误
zone.dart:1413
Uncaught TypeError: Cannot read properties of null (reading 'isAsync')
at _GetItImplementation.$get$instanceName$param1$param2 (:61215/main.dart.js:164051)
at _GetItImplementation.call[=12=] (:61215/main.dart.js:164063)
at _GetItImplementation.call[=12=] (:61215/main.dart.js:164066)
at :61215/main.dart.js:45288
at _wrapJsFunctionForAsync_closure.$protected (:61215/main.dart.js:27970)
at _wrapJsFunctionForAsync_closure.call (:61215/main.dart.js:69886)
at _awaitOnObject_closure.call (:61215/main.dart.js:69874)
at _RootZone.runUnary (:61215/main.dart.js:72668)
at _Future__propagateToListeners_handleValueCallback.call[=12=] (:61215/main.dart.js:70794)
at Object._Future__propagateToListeners (:61215/main.dart.js:28268)
我的想法是它与get_it有关,但找不到任何相关问题...
也许有人遇到过这些问题并有解决方案?
谢谢
出于某种原因,在 release / profile web build 中使用 get_it + injectable + bloc(作为单例)和 bloc 声明为简单 class GetIt 方法 call(下面的代码片段)type T 作为 Object,而不是您期望的类型。 GetIt 试图在已注册类型的范围内找到此对象类型,但(多么出乎意料!)没有找到它并且 returns 为空。 Null 不是预期的,会导致错误。
该问题仅与 singleton / lazySingleton 相关。注射剂似乎一切都很好。
@override
T call<T extends Object>({
String? instanceName,
dynamic param1,
dynamic param2,
}) {
return get<T>(instanceName: instanceName, param1: param1, param2: param2);
}
所以对我来说,解决方案是从:
@singleton
class ExampleCubit extends Cubit<ExampleState> {}
至:
abstract class ExampleCubit extends Cubit<ExampleState> {}
@Singleton(as: ExampleCubit)
class ExampleCubitImpl extends ExampleCubit {}
不能运行 发布或配置文件中的 flutter 项目。在调试中 运行s 通常没有任何问题,但在其他情况下我在 Chrome:
中收到这些错误zone.dart:1413
Uncaught TypeError: Cannot read properties of null (reading 'isAsync')
at _GetItImplementation.$get$instanceName$param1$param2 (:61215/main.dart.js:164051)
at _GetItImplementation.call[=12=] (:61215/main.dart.js:164063)
at _GetItImplementation.call[=12=] (:61215/main.dart.js:164066)
at :61215/main.dart.js:45288
at _wrapJsFunctionForAsync_closure.$protected (:61215/main.dart.js:27970)
at _wrapJsFunctionForAsync_closure.call (:61215/main.dart.js:69886)
at _awaitOnObject_closure.call (:61215/main.dart.js:69874)
at _RootZone.runUnary (:61215/main.dart.js:72668)
at _Future__propagateToListeners_handleValueCallback.call[=12=] (:61215/main.dart.js:70794)
at Object._Future__propagateToListeners (:61215/main.dart.js:28268)
我的想法是它与get_it有关,但找不到任何相关问题...
也许有人遇到过这些问题并有解决方案? 谢谢
出于某种原因,在 release / profile web build 中使用 get_it + injectable + bloc(作为单例)和 bloc 声明为简单 class GetIt 方法 call(下面的代码片段)type T 作为 Object,而不是您期望的类型。 GetIt 试图在已注册类型的范围内找到此对象类型,但(多么出乎意料!)没有找到它并且 returns 为空。 Null 不是预期的,会导致错误。
该问题仅与 singleton / lazySingleton 相关。注射剂似乎一切都很好。
@override
T call<T extends Object>({
String? instanceName,
dynamic param1,
dynamic param2,
}) {
return get<T>(instanceName: instanceName, param1: param1, param2: param2);
}
所以对我来说,解决方案是从:
@singleton
class ExampleCubit extends Cubit<ExampleState> {}
至:
abstract class ExampleCubit extends Cubit<ExampleState> {}
@Singleton(as: ExampleCubit)
class ExampleCubitImpl extends ExampleCubit {}