FlutterMain.setIsRunningInRobolectricTest en Android eliminado
La API de solo prueba FlutterMain.setIsRunningInRobolectricTest en el motor Android se consolida en FlutterInjector.
Resumen
#Si escribes pruebas Java JUnit (como pruebas Robolectric)
contra la incrustación Java del motor de Flutter y utilizaste la
FlutterMain.setIsRunningInRobolectricTest(true) API,
reemplázala con lo siguiente:
FlutterJNI mockFlutterJNI = mock(FlutterJNI.class);
FlutterInjector.setInstance(
new FlutterInjector.Builder()
.setFlutterLoader(new FlutterLoader(mockFlutterJNI))
.build());
Esto debería ser muy poco común.
Contexto
#La propia clase FlutterMain se está quedando obsoleta y se está reemplazando con la
clase FlutterInjector. La clase FlutterMain utiliza una serie de
variables y funciones estáticas que dificultan su prueba.
FlutterMain.setIsRunningInRobolectricTest() es un mecanismo estático
ad-hoc para permitir que las pruebas se ejecuten en la máquina host en la JVM sin
cargar la biblioteca nativa libflutter.so
(lo cual no se puede hacer en la máquina host).
En lugar de soluciones únicas, todas las inyecciones de dependencias necesarias para las pruebas
en la incrustación del motor Android/Java de Flutter se trasladan ahora a la
clase FlutterInjector.
Dentro de la clase FlutterInjector,
la función Builder setFlutterLoader()
permite controlar cómo la clase
FlutterLoader
localiza y carga
la biblioteca libflutter.so.
Descripción del cambio
#Este commit del motor
eliminó la función de prueba
FlutterMain.setIsRunningInRobolectricTest();
y el siguiente commit
agregó una clase
FlutterInjector para ayudar en las pruebas.
El PR 20473 refactorizó aún más
FlutterLoader
y FlutterJNI para permitir simulaciones (mocking) y pruebas adicionales.
para permitir simulaciones (mocking) y pruebas adicionales.
Guía de migración
#Código antes de la migración:
FlutterMain.setIsRunningInRobolectricTest(true);
Código después de la migración:
FlutterJNI mockFlutterJNI = mock(FlutterJNI.class);
FlutterInjector.setInstance(
new FlutterInjector.Builder()
.setFlutterLoader(new FlutterLoader(mockFlutterJNI))
.build());
Timeline
#Introducido en la versión: 1.22.0-2.0.pre.133
En la versión estable: 2.0.0
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.