为什么我的 Flutter 应用程序在启动时显示白屏几秒钟?我该如何解决这个问题?
您可以使用包 flutter_native_splash 为 Android 和 iOS 添加本机启动画面,而无需其他答案中描述的手动更改。
该软件包会为您进行手动更改。
1 - 取决于它:
dev_dependencies:
flutter_native_splash: ^0.1.4
还有
flutter pub get
2 - 在
pubspec.yaml
上配置您的启动屏幕:
flutter_native_splash:
image: assets/images/splash.png
color: 42a5f5
3 - 运行包
flutter pub run flutter_native_splash:create
现已生成启动画面。
如果您看到 Activity 的 black 窗口背景一直显示到 Flutter 渲染其第一帧,请将其添加到您的 AndroidManifest 的 < activity> ... < /activity>
之间<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
Android - 现在您可以更改
/AndroidStudioProjects/vendowallet/android/app/src/main/res/drawable/launch_background.xml
类似的东西
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher" />
</item>
IOS
更改Assets.xcassets中的LaunchImage
在flutter create命令生成的文件中。当 flutter 将 widget 渲染到屏幕时,会生成一个闪屏,在第一帧之前显示。您可以修改它以显示您选择的自定义启动屏幕,也可以将其删除..
在 android 文件夹中,打开 AndroidManifest.xml 文件。
您可以在名为 .MainActivity 的活动中删除属性名称为 ..SplashScreenUntilFirstFrame 的 meta-data
标记如果您想保留初始屏幕,可以检查drawables文件夹和styles.xml文件来修改它。
在这些文件夹中还有解释更多信息的注释..
如果您现在正在创建新项目,他们给出了解决方案(在launch_background.xml中带有注释代码)
只需通过android目录打开以下文件即可。
您将看到以下注释代码:
只需取消注释并执行以下操作,您可以通过更改可绘制名称来替换您自己的图像:
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher" />
</item>
</layer-list>
希望对您有帮助。
打开Android文件夹并在drawable文件夹中替换您的图像
在manifest文件中有一些代码只需取消注释并执行以下操作即可。
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable
android:resource="@drawable/launch_background"
/>
快乐编码
我在添加启动画面后遇到了这个问题。我也遇到了白屏。事实证明,您必须重新安装应用程序以摆脱任何缓存,然后它应该可以正常工作
https://docs.nativescript.org/tooling/publishing/creating-launch-screens-ios
我希望这对其他人有帮助!
我在 flutter.bat 文件中设置代理权。它也为本地计算机设置代理。所以我的ABD无法监听物理设备。
因此,如果您有类似的情况 - 尝试为本地区域设置 no_proxy 或完全删除代理。
我也面临同样的问题。即使在添加启动屏幕后,我第一次加载应用程序时也会遇到黑屏。我的解决方案是将 flutter 通道形式从 stable 改为 beta。为此,请打开命令提示符
检查您当前所在的频道
flutter channel
更改频道类型
flutter channel [channel name]
之后类型
flutter upgrade
这对我有帮助。我希望它也能帮助某人。
我在这里找到了解决方案:https://github.com/flutter/flutter/issues/37155