Skip to content

Gradle 回退

Jugg 会优先尝试增量编译。当当前构建基线不再适用,或失败结果明确允许回退时,本轮 Run 会切换到 Gradle。普通编译错误和用户取消不会自动触发完整构建。

触发 Gradle 回退的情况

场景当前支持情况生效方式
用户强制 Gradle支持直接跳过增量检查
没有文件变化支持提示或自动回退由配置决定是否确认
文件过多或模块过多支持确认后回退默认 Gradle;倒计时后可本轮继续增量
设备被判定为无效支持自动回退本轮改走 Gradle;设备恢复后才能完成安装
build target 切换支持自动回退App 与 androidTest 切换需要新 APK 基线
构建文件/依赖变化支持确认后回退或依赖增量用户确认决定是否继续增量

触发与结果

text
开始 Run
  -> 前置检查要求完整构建:当前 Run 切换到 Gradle
  -> 增量编译出现普通错误:结束当前 Run,不立即回退
  -> 部署失败:先尝试恢复,满足自动回退条件时整轮切换到 Gradle
  -> Gradle 成功:使用新的完整构建产物继续安装或后续运行

Gradle 构建成功后,Jugg 会把新的 APK、classpath、mapping 和资源产物作为后续增量的起点。下一次小范围修改仍会优先尝试增量编译。

使用边界

  • 增量编译会先对已知且可恢复的输入问题进行有限重试。普通源码或资源错误在重试后仍失败时,本轮直接结束,不会用 Gradle 覆盖原始错误。
  • 用户取消是明确的停止信号,不触发自动回退。
  • App 未启动或部署状态需要恢复时,Jugg 会优先尝试 Recover、兼容部署或重新安装现有 APK。Gradle 回退不能修复设备离线、ADB 异常等设备问题。
  • 部署失败只有在失败结果允许回退,并且开启自动回退配置时,才会让整轮 Run 重新执行 Gradle;多设备运行不会只为单台设备切换构建基线。

需要主动刷新完整构建基线时,按降级 Gradle 编译操作。回退条件和基线更新机制见Gradle 回退与基线重建

相关页面