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

迁移项目中Compose预览渲染缓慢问题求助

Compose预览加速:排除不必要Gradle任务的配置方案

Compose预览时的长构建时间通常是因为触发了非必要的Gradle任务(比如lint、测试、打包等),可以通过以下配置来跳过这些任务,缩短预览等待时间:

1. 模块级任务依赖调整

在你的Android模块build.gradle.kts(或build.gradle)中,针对编译任务添加条件判断,仅在非预览构建时绑定非必要任务:

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    // 仅当任务列表中不包含预览相关任务时,才绑定自定义非必要任务
    if (!gradle.startParameter.taskNames.any { it.contains("preview", ignoreCase = true) }) {
        // 替换为你需要跳过的自定义任务,比如自定义代码检查、资源压缩等
        dependsOn(yourCustomNonEssentialTask)
    }
}

2. 全局任务排除配置

在项目根目录的build.gradle.kts中,通过任务图监听来禁用预览场景下的非核心任务:

gradle.taskGraph.whenReady { graph ->
    val isPreviewBuild = graph.allTasks.any { it.name.contains("preview", ignoreCase = true) }
    if (isPreviewBuild) {
        // 禁用lint检查任务
        tasks.matching { it.name.startsWith("lint") }.forEach { it.enabled = false }
        // 禁用打包相关任务
        tasks.matching { it.name.startsWith("package") }.forEach { it.enabled = false }
        // 禁用测试任务
        tasks.matching { it.name.startsWith("test") }.forEach { it.enabled = false }
        // 可根据项目情况添加其他需要排除的任务
    }
}

3. Gradle属性层面的编译优化

在gradle.properties中开启增量编译等优化,进一步减少预览构建耗时:

# 开启Kotlin增量编译
kotlin.incremental=true
# 开启Compose编译守护进程,复用编译环境
android.experimental.enableComposeCompileDaemon=true
# 仅在发布构建时执行lint检查,跳过预览时的lint
android.lint.checkReleaseBuilds=false
# 禁用不必要的资源处理优化(按需开启)
android.enableResourceOptimizations=false

注意事项

  • 不要排除编译、资源合并等Compose预览必需的核心任务,否则会导致预览失败。
  • 不同版本的Android Gradle Plugin(AGP)和Kotlin插件可能存在配置差异,需根据项目使用的版本调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:32:42