es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer una recarga en caliente/reinicio al modificar el código del motor de Flutter o cualquier código de biblioteca de terceros?

Estoy depurando algunos problemas y necesito cambiar temporalmente el código de Dart del motor de Flutter (por ejemplo, agregar algunos print a él). Logré hacerlo meses atrás, pero con Flutter 2.8 no puedo hacerlo. En otras palabras, si cambio algunas líneas de código del motor de Flutter y luego hago clic en “hot reload” o “hot restart”, ese nuevo código no se implementa.

Esto también sucede cuando trato de modificar el código de terceros de la dependencia pub.

(Por supuesto, no cambiaré el código permanentemente. Es solo un enfoque de depuración.)

¡Gracias por cualquier sugerencia!


EDITAR

Aquí están los detalles de la página de configuración.

Imagen: enlace a la imagen

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución:

    Para poder modificar temporalmente el código Dart del motor de Flutter con fines de depuración, debes establecer la bandera --local-engine mientras ejecutas tu proyecto de Flutter. Esta bandera le indica a la herramienta de Flutter que utilice el motor local en lugar del motor precompilado que viene con el SDK de Flutter.

    Para establecer la bandera --local-engine, sigue estos pasos:

    1. Clona el repositorio del motor de Flutter desde GitHub:
      git clone https://github.com/flutter/engine.git
    2. Compila el motor:
      cd engine
      ./flutter/tools/gn --unoptimized
      ./flutter/tools/build.py
    3. Una vez que se haya compilado el motor, ejecuta tu proyecto de Flutter con la bandera --local-engine, apuntando a la ruta del motor clonado:
      flutter run --local-engine=host_debug_unopt --verbose
      

      Nota: la bandera host_debug_unopt especifica la configuración de compilación del motor.

    4. Ahora puedes modificar el código Dart del motor de Flutter en la carpeta flutter/runtime del repositorio clonado, o modificar el código de terceros de la dependencia pub.

    5. Después de realizar cambios, haz clic en “hot reload” o “hot restart” para que los cambios surtan efecto.

    Con estos pasos, deberías poder modificar temporalmente el código Dart del motor de Flutter con fines de depuración.

    En cuanto al problema de no poder modificar el código usando este enfoque con Flutter 2.8, es posible que haya cambios en las configuraciones de compilación o las banderas requeridas para esta versión. Sin embargo, los pasos anteriores deberían funcionar para la mayoría de las versiones de Flutter.

Comments are closed.