Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter app show grey screen in release mode but works fine in debug mode Instance of 'DiagnosticsProperty<void>'

I notice that the app works fine in debug mode but when I try the apk on my phone the app shows a grey screen after the loading screen. when i used https and i adding all permission.

Httpclient not works in release mode (I/flutter (22182): Another exception was thrown: Instance of 'fr')

but works in debug mode in flutter android

like image 455
Ahmed Avatar asked May 05 '20 14:05

Ahmed


People also ask

How do you test the flutter app in release mode?

To compile in release mode, we just need to add the --release flag to the flutter run command and have a physical device connected. Although we can do so, we typically do not use the flutter run command with the --release flag.


2 Answers

When you run your app in debug mode and when something goes wrong, you see the scary red error screen with logs. In release mode, you just see a grey screen.

Now, when you ran your app in debug mode, at times there are some errors which are thrown but we mistakenly ignore them as we see the app is running perfectly on screen but if you open your logs in debug mode, you will see some error messages.

For me it was something like this:

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════ The following assertion was thrown while applying parent data.: Incorrect use of ParentDataWidget.  The ParentDataWidget Expanded(flex: 1) wants to apply ParentData of type FlexParentData to a RenderObject, which has been set up to accept ParentData of incompatible type StackParentData.  Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, Expanded widgets are placed directly inside Flex widgets. The offending Expanded is currently placed inside a Stack widget. 

My app runs perfectly in debug mode while Flutter still throws this error in the background.

Now when I run the app in release mode, I see a grey screen which is different from my perfectly running app in debug mode.

When I checked the logs, I see the error message:

Flutter app show grey screen in release mode but works fine in debug mode Instance of 'DiagnosticsProperty<void>' 

So the solution?

Run you app in debug mode and check logs, I am sure you will find the problem there. Changing Flutter channels won't help as long as there are errors in your code.

like image 181
devDeejay Avatar answered Sep 28 '22 00:09

devDeejay


In my case, I was using the Expanded widget inside Stack on one of my widgets.

Wrong Approach

Stack(      children: [           Expanded(child: buildHeader(context)),           Align()      ]), 

Correct Approach

Stack(      children: [           buildHeader(context),           Align()      ]), 

I was having this problem on both, android and iOS, platforms and this is how I resolved it.

like image 23
Zeeshan Ahmad Avatar answered Sep 28 '22 00:09

Zeeshan Ahmad