You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio运行Java Scanner报NoSuchElementException异常

问题根因

你遇到的java.util.NoSuchElementException和代码语法、逻辑无关,是Android Studio运行Java main方法时的默认配置问题:默认的运行控制台没有开启终端模拟,System.in输入流未正常关联到控制台窗口,Scanner调用nextInt()时检测不到任何可读输入,直接抛出异常。

解决方法

按优先级依次尝试即可:

  • 修改运行配置:点击顶部菜单栏Run -> Edit Configurations,找到你当前运行的practice.main()任务,点击Modify options,勾选Emulate terminal in output console选项,保存后重新运行程序,此时控制台会正常等待你输入数字,不会再直接抛错。
  • 增加输入合法性校验:给读取输入的逻辑加前置判断,避免无输入时直接崩溃,对应修改后的代码片段如下:
public class practice {
public static void main(String[] args) {
    System.out.println("Taking Input");
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter Number for Table ");
    // 先判断是否有可读的整数输入
    if (sc.hasNextInt()) {
        int a = sc.nextInt();
        for (int i = 1; i <= 10; i++) {
            int total = a * i;
            System.out.println(a + " * "+ i + " = "+ total);
        }
    } else {
        System.out.println("未检测到有效整数输入,请重启程序后输入合法数字");
    }
    // 用完Scanner记得关闭
    sc.close();
}
}
  • 如果你只是练习Java SE基础语法,不涉及Android SDK相关开发,不要在Android工程下写这类控制台输入demo,新建纯Java项目运行即可,默认就支持控制台输入,不会出现这类配置问题。

补充提示:正式开发Android应用时,程序运行在安卓真机/模拟器上,不存在PC端的控制台标准输入通道,不要用Scanner读取System.in的写法获取用户输入,要通过APP界面的文本输入框等组件拿用户输入内容。

内容的提问来源于stack exchange,提问作者Osama Nisar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:42:21