新手无法正确 运行 或在 IntelliJ 中使用 Gluon 多视图和 FXML 调试新项目

Newbie cannot properly run or debug fresh project using Gluon multi-view with FXML in IntelliJ

我使用 Gluon 插件版本 2.7.0 和 Gradle 4.10.1

在 IntelliJ CE 2018.2.1 中使用 FXML 项目创建了一个全新的 Gluon 移动多视图

我打开 Gradle 工具 window,选择 Project(root),Tasks,Application,运行 我确实看到了生成的应用程序 运行,我相信,尽管它默认为大小 window 的移动设备。

我收到此错误消息:

SEVERE: javafx.platform is not defined. Desktop will be assumed by default.

我想做的是在 IntelliJ 中针对 Windows 中所有受支持的平台(嵌入式除外)调试单个 JavaFX 程序,并在我开始插入之前或多或少地查看正确的屏幕尺寸我的 iPad/iPhone/Android phone/Android tablet/Mac 只是为了让代码逻辑正确。

是否有一些设置可以让我在 模拟 不同设备之间切换作为第一阶段?

当我双击 "debug" 时,我收到以下消息并且 window 挂起。

Listening for transport dt_socket at address: 5005

这有关系吗?我们是不是无意中尝试调试实际设备?

至于应用程序大小,当您在桌面上 运行 时,它默认为 phone 外形规格 335x600。这来自 Display service:

@Override
public Dimension2D getDefaultDimensions() {
    return isTablet() ? new Dimension2D(900, 600) : new Dimension2D(335, 600);
}

如果将 charm-desktop-form 系统 属性 设置为 tablet,则可以更改为 900 x 600 的平板电脑格式。

或者您可以简单地覆盖这些设置,并设置您想要的尺寸:

@Override
public void postInit(Scene scene) {
    Swatch.BLUE.assignTo(scene);

    if (Platform.isDesktop()) {
        ((Stage) scene.getWindow()).setWidth(400);
        ((Stage) scene.getWindow()).setHeight(800);
    }
}

当您将应用程序部署到移动设备时,它只会根据屏幕大小进行调整。

与消息javafx.platform is not defined 运行ning on desktop 相关,系统属性 未定义,因此它是一条警告消息,告知已选择桌面。当您在移动设备上 运行 时,将为平台设置正确的 Android 或 iOS 值。

最后,关于调试,当您运行在桌面上时,您最初只能调试桌面应用程序,但您可以如上所述修改应用程序的大小。

要调试移动应用程序,您必须 运行 iOS 模拟器或 Android 模拟器。

展示了如何从 IntelliJ 在 Android 上进行调试,但您必须实际将应用程序部署到移动设备。

在 iOS 上,如果您有 Mac,您可以使用 launchIPhoneSimulator 任务启动 iOS 模拟器,您可以在其中选择任何可能的iPhone 或 iPad 具有不同屏幕分辨率的设备。在这种情况下,您不需要设备。

第 2 部分的解决方案:从 IntelliJ 内部调试桌面版本。

在 IntelliJ 中,创建一个 Gradle 类型的新 运行 配置,并使用 "run" 而不是 "debug" 作为 "task"。然后从工具栏中选择 "backpack [run]" 并使用工具栏上的 "debug" 图标。 IntelliJ 将 运行 启用 JDWP 选项的应用程序并将调试器连接到它。