Flutter écran gris Android en mode de libération même s'il n'y a pas d'erreurs ou d'écrans rouges en mode débogage

Nov 22 2020

J'obtiens un écran gris au démarrage juste après l'écran de démarrage sur un appareil réel Android. J'ai résolu toutes les erreurs ou les écrans rouges et après cela, j'ai essayé à nouveau, mais cela reste le même.

Remarque: j'ai publié 2 versions de cette application avant celle-ci pour jouer au magasin. Ce n'est donc pas le premier.

Mon journal

Flutter run key commands.
h Repeat this help message.
c Clear the screen
q Quit (terminate the application on the device).
I/flutter (24661):                              <-- stops here nothing after this

Réponses

JohnJoe Nov 23 2020 at 05:57

Parfois, cela fonctionne bien en mode débogage mais ne fonctionne pas en mode version. Vous pouvez attraper cette erreur en exécutant la commande ci-dessous dans votre terminal.

 flutter run --release 

La commande se compile en mode libération. Lorsque l'écran gris s'est produit, vous pouvez vérifier votre console de débogage.

Jagadish Nov 26 2020 at 07:14

Rien n'a fonctionné pour moi car il n'y avait aucune erreur dans l'interface utilisateur. L'erreur était au début de l'application dans la principale. Après avoir ajouté awaitavant Firebase.initializeApp();travaillé comme un miracle.

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setSystemUIOverlayStyle(
      SystemUiOverlayStyle(statusBarColor: Colors.transparent));
  **await** Firebase.initializeApp(); //adding await solved the problem
  SharedPreferences.getInstance().then((prefs) {
    var brightness = SchedulerBinding.instance.window.platformBrightness;
    if (brightness == Brightness.dark) {
      prefs.setBool('darkMode', true);
    } else {}
    var darkModeOn = prefs.getBool('darkMode') ?? false;
    runApp(
      ChangeNotifierProvider<ThemeNotifier>(
        create: (_) => ThemeNotifier(darkModeOn ? darkTheme : lightTheme),
        child: MaterialApp(
          home: root(),
        ),
      ),
    );
  });
}