发布模式下浏览量显示灰屏

Posted

技术标签:

【中文标题】发布模式下浏览量显示灰屏【英文标题】:Pageview display grey screen when in release mode 【发布时间】:2020-02-19 04:15:07 【问题描述】:

大家好,

我对以下代码有疑问:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget 
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      home: MyHomePage(),
    );
  


class MyHomePage extends StatefulWidget 
  @override
  _MyHomePageState createState() => _MyHomePageState();


class _MyHomePageState extends State<MyHomePage> 
  @override
  Widget build(BuildContext context) 
    return Stack(
      children: <Widget>[
        Expanded(
          child: PageView(
            children: <Widget>[
              Container(
                color: Colors.red,
              ),
              Container(
                color: Colors.yellow,
              ),
              Container(
                color: Colors.green,
              ),
              Container(
                color: Colors.blue,
              ),
            ],
          ),
        ),
      ],
    );
  

当我使用“flutter run”运行它时,它会准确显示我需要的内容,但是当我使用“--release”参数时,它会完全停止工作并显示灰色屏幕。任何帮助表示赞赏!

【问题讨论】:

【参考方案1】:

您在 Widget (Stack) 中使用 Expanded,它有自己的特点。为了修复它,删除 Expanded 并将 fit 参数应用于您的 Stack

class MyApp extends StatefulWidget 
  @override
  _MyAppState createState() => _MyAppState();


class _MyAppState extends State<ThisApp> 
  @override
  Widget build(BuildContext context) 
    return Stack(
      fit: StackFit.expand, // StackFit.expand fixes the issue
      children: <Widget>[
        PageView(
          children: <Widget>[
            Container(
              color: Colors.red,
            ),
            Container(
              color: Colors.yellow,
            ),
            Container(
              color: Colors.green,
            ),
            Container(
              color: Colors.blue,
            ),
          ],
        )
      ],
    );
  

使用调试模式,您会注意到堆栈跟踪告诉您该错误。因为--release 总是尽量避免出现问题/崩溃,所以会禁用 UI 的那部分,也就是灰屏。

【讨论】:

非常感谢! 你太棒了 我在华为手机 (android 10) 上遇到了灰屏问题,但在我的平板电脑 (Android 5) 或三星 note 9 (Android 10) 上,甚至在模拟器上都没有.我所做的只是删除了 Expanded 并且一切都恢复了。谢谢。【参考方案2】:

就我而言,调试模式下没有错误或警告。 我通过在release mode 中运行应用程序修复了灰屏

使用 Android Studio,

连接物理设备 点击运行 > Flutter Run 'main.dart' in Release Mode

Running flutter app in release mode

它还会将 apk 保存在 Built build\app\outputs\flutter-apk\app-release.apk

【讨论】:

【参考方案3】:

灰色屏幕显示在发布版本中,而不是在调试版本中显示的红色错误消息,因为 Flutter 认为它比向用户显示错误消息更好。就我而言,我的一位用户报告了这个问题,但我无法重现它。事实证明,如果您启用了 Crashlytics,错误将显示为非致命错误。这使得查找问题变得简单。

【讨论】:

【参考方案4】:

我使用 debug 来发现问题所在,并且它非常详细且准确地确定了错误的位置(在我的情况下,它是 Positioned inside a Center 小部件)。

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于发布模式下浏览量显示灰屏的主要内容,如果未能解决你的问题,请参考以下文章

Twitter-bootstrap 模式未在页面加载时显示(灰屏)

基于编辑/浏览模式在 Webpart 中显示/隐藏控件

360极速浏览器以及360安全浏览器在兼容模式下验证码图片显示不来,但是极速模式可以显示?

为什么浏览智能横幅不会在横向模式下显示?

如何使用Voyager Laravel Admin在BREAD浏览模式下显示缩略图

视频捕获期间显示灰屏 - OpenCV