【问题标题】:Flutter app shows a black screen before loading the appFlutter 应用在​​加载应用前显示黑屏
【发布时间】:2017-08-22 21:50:18
【问题描述】:

我注意到 Flutter 应用程序的这个问题,当我从冷启动打开 Flutter 应用程序时,我看到在实际应用程序加载之前弹出黑屏。我发现 Newsvoice 制作应用和我安装的测试应用存在问题。

在此处查看视频:https://www.youtube.com/watch?v=zszud6UWzps

这是 Flutter SDK 中的错误吗?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    这个问题是fixed recently。如果您使用的是具有此引擎修复的 Flutter 版本,您将看不到黑框。 (修复程序现在应该在 Flutter master 分支上,而不是 alpha 分支上。)

    【讨论】:

      【解决方案2】:

      这不是问题,这是热重载。别担心。当你用 release 运行时,你看不到这个。

      如果你想确定试试 ->

      flutter 运行 --release

      【讨论】:

      • 也许你不应该以“这不是问题”作为答案,因为它完全是这样,只是在调试模式下。释放模式部分很有帮助
      【解决方案3】:
      <meta-data
          android:name="io.flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/my_splash"
          />
      

      AndroidManifest.xml 检查 FlutterActivity 并添加此代码

      【讨论】:

      • my_splash 是什么?
      【解决方案4】:

      这不是错误。这就是它正常行为的方式。您可以将加载黑屏替换为图像:

      在 AndroidManifest.xml 中,您可以在此处更改启动图像。

             <meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable" 
      android:resource="@drawable/launch_background" />
      

      查找文件:

      android\app\src\main\res\drawable\launch_background.xml

      android\app\src\main\res\drawable-v21\launch_background.xml

      更改文件以添加您自己的自定义图像:

      <item>
          <bitmap android:gravity="center" android:src="@drawable/splash_image" />
      </item>
      

      您的初始图像应存储在可绘制文件夹中:

      android\app\src\main\res\drawable\splash_image.png

      app\src\main\res\drawable-v21\splash_image.png

      【讨论】:

      • 这对我有用。但是,我必须删除 'android:gravity="center" ' 以获得完美的渲染。
      【解决方案5】:

      在使用 Firebase 时删除 FutureBuilder 后,我可以解决这个问题。只需像这样在 main() 上初始化 Firebase 应用程序

      void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        await Firebase.initializeApp();
        runApp(MyApp());
      }
      

      而不是在你的构建方法上使用 FutureBuilder

      【讨论】:

        【解决方案6】:

        黑屏是由多种原因引起的,这是我从网上看到的不同反应中收集到的。就我而言,我意识到,我的 Firebase.initializeApp() 在我的 FutureBuilder 的快照中返回了一个错误,因为没有呈现任何小部件。我尝试了一切都无济于事。最后我将我的项目移动到一个全新的文件夹中,如here所述

        然后我的黑屏问题得到了解决。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-09
          • 2018-03-20
          • 2016-08-06
          • 2012-12-28
          相关资源
          最近更新 更多