Приложение Flutter показывает серый экран в режиме выпуска, но отлично работает в режиме отладки. Экземпляр «DiagnosticsProperty <void>» - PullRequest
13 голосов
/ 05 мая 2020

Я заметил, что приложение отлично работает в режиме отладки, но когда я пытаюсь установить apk на своем телефоне, приложение показывает серый экран после экрана загрузки. когда я использовал https и добавляю все разрешения.

Httpclient не работает в режиме выпуска (I / flutter (22182): было выбрано другое исключение: экземпляр 'fr')

, но работает в режим отладки во флаттере android

Ответы [ 4 ]

10 голосов
/ 25 июня 2020

Когда вы запускаете приложение в режиме отладки и когда что-то идет не так, вы видите страшный красный экран ошибки с журналами. В режиме выпуска вы просто видите серый экран.

Теперь, когда вы запускаете приложение в режиме отладки, иногда возникают некоторые ошибки, но мы по ошибке игнорируем их, поскольку видим, что приложение работает идеально на экране, но если вы откроете свои журналы в режиме отладки, вы увидите несколько сообщений об ошибках.

Для меня это было примерно так:

════════ 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.

Мое приложение отлично работает в режиме отладки, пока Flutter по-прежнему вызывает эту ошибку в фоновом режиме.

Теперь, когда я запускаю приложение в режиме выпуска, я вижу серый экран, который отличается от моего отлично работающего приложения в режиме отладки.

Когда я проверил журналы, я вижу сообщение об ошибке:

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

Итак, решение?

Запустите приложение в режиме отладки и проверьте журналы, я уверен, что вы найди там проблему. Изменение каналов флейтера не поможет, пока в вашем коде есть ошибки.

0 голосов
/ 25 августа 2020

сначала вы проверяете AndroidManifest. xml (файл AndroidManifest. xml для режима отладки отличается от AndroidManifest. xml файл для режима выпуска. Проверьте каталог:

android\app\src\debug\AndroidManifest.xml

и каталог:

android\app\src\main\AndroidManifest.xml

даже вы можете создать для выпуска:

android\app\src\release\AndroidManifest.xml

попробуйте добавить

<uses-permission android:name="android.permission.INTERNET" />

к целевому AndroidManifest. xml).

красный экран в режиме отладки - это как серый экран в выпуске мода, это означает, что у вас есть код ошибки, но для режима отладки, возможно, эта ошибка похожа на предупреждение и может запускаться, и вы не видите никаких проблем в своем приложении в режиме отладки! но для режима выпуска вы должны это исправить! как случай для меня: я пытаюсь поместить виджет позиции в виджет контейнера, и я получаю эту ошибку:

Another exception was thrown: Instance of ‘DiagnosticsProperty’
Incorrect use of ParentDataWidget.

Я исправляю это, изменяя контейнер на стек.

0 голосов
/ 12 июня 2020

У меня была аналогичная проблема. После flutter upgrade он отлично работает и в режиме выпуска.
Это мои текущие версии:

  • Flutter 1.17.3 • стабильный канал • https://github.com/flutter/flutter.git
  • Framework • версия b041144f83 (8 дней a go) • 2020-06-04 09:26:11 -0700
  • Engine • версия ee76268252
  • Инструменты • Dart 2.8. 4
0 голосов
/ 02 июня 2020

Эта проблема существует в течение определенного периода времени, вот проблема, связанная с .

Я столкнулся с этой проблемой, но это зависит от кода. Для меня с CacheNetworkImage issue # 404 я ошибся imageUrl или null, что вызвало серый экран. Пользовательский интерфейс работал без серого экрана, даже если я не справлялся должным образом до обновления до 1.17.1 (предыдущий флаттер 1.12.13 + исправление 8), теперь все должно быть более осторожным.

...