应用需要热重载到 运行
hot reload needs to be done for app to run
我正在开发一个 Flutter 应用程序,如果 Firebase 中的数据为 != null,它会使用 Firebase 和 Stream 来显示列表视图。如果数据为空,我的代码会显示一个加载符号。每当我启动我的应用程序时,首先出现的是加载符号,并且在我热重新加载我的应用程序之前不会消失。当我再次热重启时,我需要热重载才能显示数据。如果我曾经发布我的应用程序,这个问题是否会出现在用户面前,或者仅仅是因为我在模拟器中处于调试模式?如果这是应用发布时可能出现的问题,有人知道如何解决吗?
代码:
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(),
),
);
}
肯定和Debug模式有关。我也经常面对这个问题。尝试在发布模式下构建它,它应该可以正常工作。由于允许热重载和源代码级调试的调试开销,调试版本的应用程序大小很大。
构建应用的发布版本时,请考虑使用 --split-debug-info
标签。此标记可以显着减少代码大小。有关使用此标记的示例,请参阅 Obfuscating Dart code.
您可以采取其他措施来缩小您的应用程序:
- 删除未使用的资源
- 尽量减少从图书馆导入的资源
- 支持有限数量的屏幕密度
- 压缩 PNG 和 JPEG 文件
我正在开发一个 Flutter 应用程序,如果 Firebase 中的数据为 != null,它会使用 Firebase 和 Stream 来显示列表视图。如果数据为空,我的代码会显示一个加载符号。每当我启动我的应用程序时,首先出现的是加载符号,并且在我热重新加载我的应用程序之前不会消失。当我再次热重启时,我需要热重载才能显示数据。如果我曾经发布我的应用程序,这个问题是否会出现在用户面前,或者仅仅是因为我在模拟器中处于调试模式?如果这是应用发布时可能出现的问题,有人知道如何解决吗?
代码:
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(),
),
);
}
肯定和Debug模式有关。我也经常面对这个问题。尝试在发布模式下构建它,它应该可以正常工作。由于允许热重载和源代码级调试的调试开销,调试版本的应用程序大小很大。
构建应用的发布版本时,请考虑使用 --split-debug-info
标签。此标记可以显着减少代码大小。有关使用此标记的示例,请参阅 Obfuscating Dart code.
您可以采取其他措施来缩小您的应用程序:
- 删除未使用的资源
- 尽量减少从图书馆导入的资源
- 支持有限数量的屏幕密度
- 压缩 PNG 和 JPEG 文件