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

Android Studio中启用LibGDX桌面启动器code hot swapping功能求助

解决LibGDX Desktop Launcher无法使用Code Hot Swapping的问题

问题场景

使用Android Studio Giraffe 2022.3.1、JBR 17开发LibGDX 1.12.0项目时,Android Launcher可正常使用Apply Code Changes和Apply Code Changes and Restart Activity热替换功能,但Desktop Launcher无法激活该功能,已检查File > Settings > Build, Execution, Deployment > Debugger > HotSwap设置并尝试快捷键无效。

解决方案步骤

1. 调整Desktop模块的Gradle配置

打开Desktop模块的build.gradle文件,找到run任务节点,添加JVM参数以开启高级热替换支持:

run {
    // 保留原有配置,添加以下jvmArgs
    jvmArgs = [
        "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005",
        "-XX:+AllowRedefinitionToAddDeleteMethods",
        "-XX:+UseJVMCICompiler"
    ]
    standardInput = System.in
}
  • -XX:+AllowRedefinitionToAddDeleteMethods:允许热替换时添加/删除方法,突破默认热替换的限制
  • JDWP参数:保证调试连接正常,让Android Studio能识别调试状态

2. 配置Desktop Launcher的调试运行项

  • 打开Run > Edit Configurations,找到Desktop Launcher的调试配置
  • 在Configuration标签页,确认Working directory设置为项目根目录下的assets(LibGDX Desktop运行的资源目录要求)
  • 切换到Debugger标签页,勾选Reload classes after build,并将HotSwap模式设为Automatically reload classes after compilation

3. 执行正确的热替换流程

必须在调试模式下运行Desktop Launcher,之后按以下步骤操作:

  1. 修改代码后,执行Build > Make Project(快捷键Ctrl+F9)完成编译
  2. 编译成功后,点击调试工具栏的Apply Code Changes按钮,或用快捷键Ctrl+Alt+F10选择对应选项

4. 排查JDK版本兼容性

LibGDX 1.12.0对JBR 17的热替换支持存在个别兼容性问题,若上述配置无效:

  • 切换到JBR 11:在File > Project Structure > Project中设置SDK为JBR 11,同步Gradle后重新调试运行

5. 避开LibGDX热替换的限制

  • 不要修改DesktopLauncher类的启动逻辑代码,这类变更必须重启应用才能生效
  • 对于Game或Screen子类中的代码,若涉及全局初始化逻辑,部分变更可能需要重启,但普通业务逻辑的修改均可通过热替换生效

补充说明

9年前关于Gradle模板不支持热替换的结论已过时,当前LibGDX官方Gradle模板已支持调试热替换,核心是要正确配置JVM参数和调试选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:13:41