【发布时间】:2022-11-28 11:29:04
【问题描述】:
更新:整个main.dart被调用了两次。
var x = 0;
void main() {
print(++x);
}
将“1”打印到日志两次。
在 Android 和 Flutter Web 上(我还没有测试过其他平台),我的应用程序的入口函数 main() 被触发了两次,我无法弄清楚问题是什么。
我已经将 RunApp() 从 main() 中剥离出来,将其简化为:
void main() {
print(StackTrace.current);
}
输出是,打印两次:
I/flutter ( 8417): #0 main (package:appname/main.dart:14:20)
I/flutter ( 8417): #1 _runMain.<anonymous closure> (dart:ui/hooks.dart:134:23)
I/flutter ( 8417): #2 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
I/flutter ( 8417): #3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
I/flutter ( 8417): #0 main (package:appname/main.dart:14:20)
I/flutter ( 8417): #1 _runMain.<anonymous closure> (dart:ui/hooks.dart:134:23)
I/flutter ( 8417): #2 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
I/flutter ( 8417): #3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
当然,这意味着启动的每个组件都会发生两次,特别是用于会话恢复的 API 通信。
我试过了
- 在整个目录中搜索对
main()的呼叫 - 将 android 目录重置为 stock
-
flutter clean,flutter pub get - 删除建造
我搜索过这个,但大多数结果都是关于 FutureBuilder 或 build() 的。我确实找到了这个unanswered similar question
我的配置也没有什么特别之处
【问题讨论】:
-
这只是在调试模式下吗?我在想是否可能是因为热重载。也许还检查它是否在通过“flutter run”而不是 IDE 从终端运行时发生
-
每当我按下“运行”按钮时,它就会发生。它也发生在
flutter run谢谢 -
@dumazy 就我而言,它是由pub.dev/packages/audio_service 引起的。
标签: flutter