Android Studio 无法找到或加载 "Scratch" 文件的主要 class

Android Studio could not find or load main class of "Scratch" file

更新:以下问题一直持续到Android Studio 3.4.2


我使用 Android Studio 3.3 并创建了一个 scratch 文件 (File > new > Scratch File > Java)。 IDE 在 ~/.AndroidStudio3.3/config/scratches 中创建了 scratch.java

class Scratch {
    public static void main(String[] args) {

    }
}

但是当我 运行 临时文件时(通过按 class 名称或 main 方法附近的绿色按钮),我得到这个错误:

Error: Could not find or load main class Scratch

我认为 IDE 不会生成 Scratch.class,因此 Java 找不到它。有没有办法解决这个问题并从 IDE 运行 宁临时文件(不使用 Terminal)?

更新

我刚刚注意到此问题已在 Android Studio 3.5 中修复!


我让它工作的唯一方法(在 Android Studio 3.4.1 中)是这种非常肮脏的方法:

  1. 前往 Run > Edit Configurations > Scratch
  2. Before launch底部添加(+)Run External tool
  3. 在外部工具弹出窗口中按+并填写以下内容Tool Settings

    姓名: Compile Scratch

    计划javac

    参数$FileName$

    工作目录:你的临时文件目录

  4. 按确定
  5. 再次在外部工具弹出窗口中按 + 并填写以下内容 Tool Settings

    姓名: Run Scratch

    计划java

    参数$FileClass$

    工作目录:你的临时文件目录

  6. 按确定并在 Run/Debug 配置中应用

奇怪的是,只有当您使用 class/main 声明旁边的绿色箭头时,这才有效。如果您使用菜单中的 运行 按钮,这也会失败。

您仍然会在 运行 window 的 Scratch 选项卡中收到未找到错误。但是会弹出两个额外的选项卡(每个外部工具一个)。在 Run Scratch 选项卡中,您将获得输出。

我个人不喜欢这个,但这是我想出的最好的解决方法。