Dart控制台无法输入,stdin.readLineSync()始终返回null求助
解决方案:Dart stdin.readLineSync()返回null无法输入的问题
核心原因
你遇到的问题本质是Android Studio默认将你的Dart项目按Flutter应用模式运行,强制绑定模拟器/设备,而非本地交互式终端,导致控制台无法接收输入,stdin.readLineSync()直接返回null,同时控制台显示「Read-only」。
解决方法
方法一:修改IDE运行配置
- 点击Android Studio右上角的运行配置下拉菜单,选择「Edit Configurations...」
- 点击左上角的「+」按钮,选择「Dart」类型
- 在「Dart file」选项中选择你的
main.dart文件,可将配置名称改为「Dart Console」方便识别 - 保存配置后,选择该配置运行程序,此时会启动本地交互式终端,即可正常输入内容
方法二:直接用系统终端运行
- 打开电脑自带的终端工具(Windows用命令提示符/PowerShell,Mac/Linux用终端)
- 切换到你的项目根目录,比如执行
cd /path/to/your/project - 运行命令:
dart run lib/main.dart
此时终端会进入交互状态,输入内容后按回车,程序就能正确获取输入值
补充说明
你在flutlab.io下载的项目能正常运行,是因为该项目的默认运行配置已设置为Dart控制台程序;而本地新建的Flutter项目,IDE会默认启用Flutter设备运行模式,这种模式下的控制台与模拟器/设备绑定,不支持本地输入交互。
内容的提问来源于stack exchange,提问作者Buğra
相关产品推荐
相关产品推荐

