【问题标题】:Flutter app show grey screen in release mode but works fine in debug modeFlutter 应用程序在发布模式下显示灰屏,但在调试模式下工作正常
【发布时间】:2020-04-17 12:01:18
【问题描述】:

我正在尝试颤振,目前正在学习本教程 https://www.youtube.com/watch?v=j6c_vHdbUfg

我注意到该应用在调试模式下运行良好,但是当我在手机上尝试该 apk 时,该应用在加载屏幕后显示灰屏。我不太熟悉在移动设备上构建应用程序,并且不确定是什么导致了这里的问题。我已经尝试使用教程中的 github 项目构建 apk,但它也有这个问题。 https://github.com/iamshaunjp/flutter-beginners-tutorial/tree/lesson-35

【问题讨论】:

  • 能否提供显示灰屏的页面代码?
  • @PedroMassango pastebin.com/773Jm3m6
  • 尝试在终端运行这些:flutter channel masterflutter upgrade
  • 我复制了那个教程项目,并没有在 Pixel 2XL 上重现任何“灰屏”。也许您的手机或您正在使用的颤振版本有一些独特之处。你的电话是什么?和flutter doctor -v?否则,可能类似于“黑屏”问题? stackoverflow.com/questions/53641660/…
  • 以下链接中给出的答案 100% 有效。 stackoverflow.com/questions/60292922/…

标签: android flutter


【解决方案1】:

我也遇到了同样的问题,并且可以正常工作。

您需要做的是在 AndroidManifest.xml 中添加以下行:

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

可以在以下位置找到:android/app/src/main/

你可能看到的原因是android需要这个权限才能访问http请求。

【讨论】:

    【解决方案2】:

    我遇到了这个错误并解决了。

    如果您使用的是窗口,请在颤振控制台上运行所有命令

    flutter channel master
    flutter doctor
    flutter channel dev
    flutter doctor
    flutter channel
    flutter doctor --android-licenses
    

    按 y 也接受所有许可

    然后重启你的电脑

    【讨论】:

    • 您能否解释一下为什么这些命令可以解决问题?这将帮助刚接触 Flutter 的开发人员弄清楚如何在未来自行解决这些类型的问题。
    【解决方案3】:

    这是 Flutter 崩溃。

    我遇到了同样的问题,并通过在我的颤振项目中安装 SENTRY 错误日志来解决它。 我花了 30 分钟来安装和修复 :)

    这里是关于 SENTRY 的 flutter 官方文档的链接: https://flutter.dev/docs/cookbook/maintenance/error-reporting

    附: 安装时还要仔细观察导入,因为你可能会遇到 dart:html 错误。 看: Flutter build cannot find 'dart:html'

    P.P.S 如果您安装 SENTRY,请确保您的应用可以通过 AndroidManifest.xml 访问互联网

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

    祝你好运!

    【讨论】:

      【解决方案4】:

      Catcher 似乎是一个不错的解决方案。我有一个类似的问题并试一试 https://pub.dev/packages/catcher

      【讨论】:

        【解决方案5】:

        我认为问题在于代码。

        在您的参考代码 Home.dart 文件中,您正在根据条件(三元运算符)设置图像和颜色

        String bgImage = data['isDaytime'] ? 'day.png' : 'night.png'; 
        Color bgColor = data['isDaytime'] ? Colors.blue : Colors.indigo[700];
        

        错误是:布尔表达式不能为空

        因为 data['isDaytime] 最初为空。

        如果 data['isDaytime']null,您必须设置一个选项值,像这样

        String bgImage = data['isDaytime'] ?? false ? 'day.png' : 'night.png'; 
        Color bgColor = data['isDaytime'] ?? false ? Colors.blue : Colors.indigo[700];
        

        【讨论】:

          猜你喜欢
          • 2020-08-20
          • 1970-01-01
          • 1970-01-01
          • 2018-07-31
          • 1970-01-01
          • 2019-12-05
          • 2020-05-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多