需要进行热重载才能运行应用程序
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
【讨论】:
以上是关于需要进行热重载才能运行应用程序的主要内容,如果未能解决你的问题,请参考以下文章