簡體   English   中英

Flutter 應用程序在發布模式下顯示灰屏,但在調試模式下工作正常 'DiagnosticsProperty 實例<void> '</void>

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

我注意到該應用程序在調試模式下運行良好,但是當我在手機上嘗試該 apk 時,該應用程序在加載屏幕后顯示灰色屏幕。 當我使用 https 並添加所有權限時。

Httpclient 在發布模式下不起作用(I/flutter (22182): 另一個異常被拋出: 'fr' 的實例)

但在 flutter android 的調試模式下工作

當您在調試模式下運行您的應用程序並且出現問題時,您會看到帶有日志的可怕紅色錯誤屏幕。 在發布模式下,您只會看到一個灰屏。

現在,當您在調試模式下運行應用程序時,有時會拋出一些錯誤,但我們會錯誤地忽略它們,因為我們看到應用程序在屏幕上完美運行,但是如果您在調試模式下打開日志,您會看到一些錯誤消息。

對我來說是這樣的:

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

那么解決方案呢?

在調試模式下運行你的應用程序並檢查日志,我相信你會在那里找到問題。 只要代碼中存在錯誤,更改 Flutter 通道就無濟於事。

首先,您檢查 AndroidManifest.xml(AndroidManifest.xml 文件的調試模式與 AndroidManifest.Z0F635D0E0F3874FFF8B581C132E6C7A7 的發布模式文件不同。

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)。

調試模式下的紅屏它就像發布模式中的灰屏,這意味着你有一個錯誤代碼,但對於調試模式,這個錯誤可能就像警告一樣,可以運行,你在調試模式下看不到你的應用程序有任何問題,但對於發布模式:您應該修復它:就像我的情況一樣:我正在嘗試將 Position 小部件放入容器小部件中,但出現此錯誤:

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

我通過將容器更改為堆棧來修復它。

就我而言,我在其中一個小部件上使用Stack內的Expanded小部件。

錯誤的方法

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

正確的方法

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

我在 android 和 iOS 平台上都遇到了這個問題,這就是我解決它的方法。

這個問題已經存在一段時間了,這里是相關問題

我遇到了這個問題,但這取決於代碼。 對我來說,由於CacheNetworkImage issue#404 ,我傳遞了錯誤imageUrl或 null,這導致了灰屏。 UI 在沒有灰屏的情況下工作即使我在升級到 1.17.1(以前的 flutter 1.12.13+hotfix.8)之前沒有正確處理,現在一切都需要更加小心。

我有一個類似的問題。 flutter upgrade后,在發布模式下也能正常工作。
這些是我當前的版本:

  • Flutter 1.17.3 • 通道穩定 • https://github.com/flutter/flutter.git
  • 框架 • 修訂 b041144f83(8 天前) • 2020-06-04 09:26:11 -0700
  • 引擎 • 修訂版 ee76268252
  • 工具 • Dart 2.8.4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM