发布模式下浏览量显示灰屏
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 ModeRunning 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 模式未在页面加载时显示(灰屏)
360极速浏览器以及360安全浏览器在兼容模式下验证码图片显示不来,但是极速模式可以显示?