¿Alguna solución para solucionar este problema?
Stacktrace:
[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
If you're running an application and need to access the binary messenger before `runApp()` has been called (for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.
If you're running a test, you can call the `TestWidgetsFlutterBinding.ensureInitialized()` as the first line in your test's `main()` method to initialize the binding.
#0 defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:73:7)
#1 defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:86:4)
#2 MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
#3 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:35)
<asynchronous suspension>
#4 MethodChannel.invokeMapMethod (package:f<…>
Respuestas:
Este problema se presenta al actualizar Flutter. La razón detrás de esto es que está esperando algunos datos o ejecutando una
async
función dentromain()
.Estaba inicializando por
ScopedModel
dentromain()
y por dentro que estaba esperando algunos datos.Hay una pequeña solución. Solo corre
WidgetsFlutterBinding.ensureInitialized()
adentrovoid main()
, antes de hacerlorunApp()
. ¡¡Funciona de maravilla!!fuente
main()
método?Esto generalmente sucede si está esperando el
main()
método. Entonces, la solución sería:fuente
No estoy seguro de tener la respuesta correcta, pero obtuve el mismo error después de una actualización reciente de Flutter y logré que funcione, así que estoy compartiendo mis hallazgos.
Parece que el error podría deberse a un cambio importante reciente: https://groups.google.com/forum/#!msg/flutter-announce/sHAL2fBtJ1Y/mGjrKH3dEwAJ .
Como resultado, necesitamos cambiar manualmente el código de la siguiente manera:
Alternativamente, si usted es un novato como yo y tiene dificultades para comprender lo anterior y el # 38464 , puede evitar temporalmente este problema cambiando al canal beta. Simplemente ejecute "flutter channel beta". El cambio decisivo aún no está en el canal beta, por lo que después de cambiar al canal beta, al menos por ahora no obtendría este error.
fuente
solo agrega esta línea en main.dart
tu código parece
fuente
en mi caso al usar la orientación,
El punto es agregar WidgetsFlutterBinding.ensureInitialized () en la primera línea de la clase principal
fuente
Podría encontrarse con esto si está intentando ejecutar el código nativo del complemento de forma aislada. La documentación isolate_handler aquí explica esto bien:
El problema aquí es que los aislamientos proporcionarán un aumento del rendimiento solo en el caso de un código dart computacionalmente costoso. El código de la plataforma del complemento volverá a utilizar el hilo principal (UI).
Llamar
WidgetsFlutterBinding.ensureInitialized
dentro de un aislado también fallará debido a la ausencia de un motor de IU subyacente en el aislado.fuente
Antes de tener la versión
v1.12.13+hotfix.5
, luego cambié a la versiónv1.14.4
y funcionó.El error dice que debería agregar
WidgetsFlutterBinding.ensureInitialized();
, pero como eso no funcionó para mí, cambié a la otra versión. Sin embargo, una cosa a tener en cuenta es que aún debe agregarWidgetsFlutterBinding.ensureInitialized();
como la primera línea en su principal.fuente
Solución: llame
WidgetsFlutterBinding.ensureInitialized();
antes de llamar a funciones asincrónicas.fuente
Una respuesta publicada sobre el problema 47033 de GitHub resolvió mi problema.
problema: https://github.com/flutter/flutter/issues/47033
la solución que funcionó para mí: https://github.com/flutter/flutter/issues/47033#issuecomment-571936089
Creo que este es un problema con respecto a la versión 1.12.13 + hotfix de flutter, tal vez degradar el flutter también puede ayudar.
fuente