集成Jetpack Compose到legacy模块报IncompatibleComposeRuntimeVersionException如何解决
解决方案
你的配置明面上版本匹配,问题出在多模块传递依赖引入了低版本Compose Runtime,或者子模块Compiler配置不一致,按以下步骤排查解决:
- 全局强制锁定Compose依赖版本
在项目根目录的build.gradle的allprojects代码块中添加版本锁定规则,强制所有模块使用统一的Compose Runtime版本,避免第三方依赖传递引入低版本:
allprojects { configurations.all { resolutionStrategy { force "androidx.compose.runtime:runtime:1.0.1" force "androidx.compose.runtime:runtime-livedata:1.0.1" force "androidx.compose.runtime:runtime-rxjava2:1.0.1" // 其他你用到的Compose相关依赖也可以在这里统一锁定 } } }
- 检查所有开启Compose模块的配置一致性
确认app、legacy、common-ui三个开启了Compose的模块,都在各自的build.gradle中配置了完全一致的composeOptions:
android { composeOptions { kotlinCompilerExtensionVersion '1.0.1' } kotlinOptions { jvmTarget = '1.8' } }
你当前使用的Compose Compiler 1.0.1和Kotlin 1.5.21的版本匹配符合官方要求,不需要调整这两个版本号。
- 排查传递依赖冲突
执行以下命令查看legacy模块的Compose Runtime依赖树,确认是否存在其他版本的runtime被引入:
./gradlew :legacy:dependencies | grep "androidx.compose.runtime:runtime"
如果找到非1.0.1版本的依赖,在引入该依赖的地方添加exclude规则移除低版本Compose Runtime即可。
- 清理缓存后重新构建
执行./gradlew clean清理构建缓存,再重新构建项目,排除缓存导致的版本识别异常。
内容的提问来源于stack exchange,提问作者clever_trevor
相关产品推荐
相关产品推荐

