You need to enable JavaScript to run this app. 在现有项目动态功能模块接入Jetpack Compose时遇Gradle找不到compose-compiler的报错
优惠活动
大模型
产品
解决方案
定价
更多

在现有项目动态功能模块接入Jetpack Compose时遇Gradle找不到compose-compiler的报错

报错根因
  • 依赖坐标错配:Compose 1.0.0-beta01 阶段,androidx.compose:compose-compiler 这个独立artifact尚未发布到Google Maven仓库,这类独立编译组件直到Compose 1.2版本才正式上线对应坐标。你手动在依赖中声明的这个路径本身不存在,即便搜索路径已经覆盖Google Maven,也无法找到对应文件。
  • 配置逻辑混淆:该版本的Compose编译器是随Kotlin插件、Android Gradle插件同步加载的,不需要在dependencies块中手动声明独立的compiler依赖,错误引入不存在的坐标是触发解析失败的直接原因。
  • 动态模块配置遗漏:动态特性模块不会继承主应用模块的编译配置,如果未在动态模块中单独开启Compose编译开关,Gradle会尝试自动拉取缺失的compiler依赖,直接触发本次报错。
  • 版本兼容细节:你使用的Gradle 7.0.0-alpha08 对早期Compose插件的缓存机制尚未完全适配,一旦配置路径错误就会直接抛出依赖解析失败,不会做自动兼容回退。
具体解决步骤
  • 清理冗余错误依赖:移除所有模块(主应用模块、动态特性模块)中手动添加的 androidx.compose:compose-compiler:1.0.0-beta01 依赖声明,这类写法在该版本下完全冗余且无效。
  • 仓库配置优化:移除项目中所有指向已停服的jcenter、bintray的仓库配置,只保留Google Maven、Maven Central两个必要仓库,减少无效的依赖搜索路径。
  • 全模块开启Compose支持:在主应用模块、以及所有承载Compose代码的动态特性模块中,都要在android代码块下显式开启Compose开关:
    android {
        buildFeatures {
            compose true
        }
    }
    
  • 动态模块编译参数适配:动态模块需要单独配置Kotlin编译参数,不要依赖主模块的参数传递。在动态模块的kotlinOptions块中添加对应配置,匹配beta01版本的编译要求:
    android {
        kotlinOptions {
            useIR = true
            jvmTarget = "1.8"
            freeCompilerArgs += ["-Xallow-jvm-ir-dependencies"]
        }
    }
    
  • 依赖声明校验:所有模块的Compose依赖仅需声明运行时组件,不要引入compiler组件,beta01版本的正确依赖声明示例:
    dependencies {
        implementation "androidx.compose.ui:ui:1.0.0-beta01"
        implementation "androidx.compose.material:material:1.0.0-beta01"
        debugImplementation "androidx.compose.ui:ui-tooling:1.0.0-beta01"
    }
    
  • 版本匹配确认:你当前使用的Kotlin 1.4.30 完全适配Compose 1.0.0-beta01,无需额外升级Kotlin版本。需要确保配套的AGP版本为7.0.0-alpha及以上,才能正常兼容该版本的Gradle与Compose编译流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 07:24:01