需要进行热重载才能运行应用程序

Posted

技术标签:

【中文标题】需要进行热重载才能运行应用程序【英文标题】:hot reload needs to be done for app to run 【发布时间】:2020-10-13 23:06:28 【问题描述】:

如果 Firebase 中的数据为 != null,我正在开发一个使用 Firebase 和 Stream 来显示列表视图的 Flutter 应用。如果数据为空,我的代码会显示加载符号。每当我启动我的应用程序时,首先会出现加载符号,并且在我热重新加载我的应用程序之前它不会消失。当我再次热重启时,我需要热重新加载才能显示数据。如果我发布了我的应用程序,用户会遇到这个问题,还是仅仅是因为我在模拟器中处于调试模式?如果这是应用发布时可能出现的问题,有谁知道如何解决这个问题?

代码:

  Widget MemoirsList() 
    return SingleChildScrollView(
      child: memoirsStream != null
          ? Column(
              children: <Widget>[
                StreamBuilder(
                  stream: memoirsStream,
                  builder: (context, snapshot) 
                    return ListView.builder(
                        padding: EdgeInsets.symmetric(horizontal: 16),
                        itemCount: snapshot.data.documents.length,
                        shrinkWrap: true,
                        physics: NeverScrollableScrollPhysics(),
                        itemBuilder: (context, index) 
                          return MemoirsCard(
                            authorName: snapshot.data.documents[index].data['authorName'],
                            title: snapshot.data.documents[index].data["title"],
                            description: snapshot.data.documents[index].data['description'],
                            imgUrl: snapshot.data.documents[index].data['imgURL'],
                          );
                        );
                  ,
                )
              ],
            )
          : Container(
              alignment: Alignment.center,
              child: CircularProgressIndicator(),
          ),
    );
  

【问题讨论】:

【参考方案1】:

肯定和Debug模式有关。我也经常面对这个问题。尝试在发布模式下构建它,它应该可以正常工作。由于允许热重载和源代码级调试的调试开销,调试构建的应用程序大小很大。

在构建应用的发布版本时,请考虑使用 --split-debug-info 标记。这个标签可以显着减少代码大小。有关使用此标签的示例,请参阅Obfuscating Dart code。

您可以做的其他事情来使您的应用更小:

删除未使用的资源 尽量减少从库中导入的资源 支持有限数量的屏幕密度 压缩 PNG 和 JPEG 文件

To build a release version for android

To build a release version for ios

【讨论】:

以上是关于需要进行热重载才能运行应用程序的主要内容,如果未能解决你的问题,请参考以下文章

.NET 6新特性试用 | 热重载

颤振热重载不起作用。需要帮助

ASP.NET Core 6.0对热重载的支持

使用 Python 进行热重载/交换 [重复]

热重载不会热重载

使用 Electron 和 Angular 进行热重载