添加lifecycle-runtime-compose引发Kotlin类重复冲突问题求助
解决Jetpack Compose添加lifecycle-runtime-compose依赖后的Kotlin类重复问题
问题根源
添加androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version后,该依赖的传递依赖引入了kotlin-stdlib-jdk8:1.7.10,与项目中使用的kotlin-stdlib:1.8.10版本冲突,导致重复类错误。
解决步骤
1. 强制统一Kotlin标准库版本
在项目根目录的build.gradle(或新版的settings.gradle.kts)中添加版本强制规则,确保所有依赖都使用项目指定的Kotlin版本对应的标准库:
// 根build.gradle(Groovy语法) allprojects { configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:1.8.10" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10" } } }
如果是KTS语法(build.gradle.kts):
// 根build.gradle.kts allprojects { configurations.all { resolutionStrategy { force("org.jetbrains.kotlin:kotlin-stdlib:1.8.10") force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10") } } }
2. 排除冲突的传递依赖
如果不想全局强制版本,可以直接在lifecycle-runtime-compose依赖中排除旧版的kotlin-stdlib-jdk8:
// 模块级build.gradle.kts implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version") { exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8") }
3. 验证依赖兼容性
确保Lifecycle版本与项目的Kotlin、Compose版本匹配:
- Jetpack Compose 1.4.x 对应 Kotlin 1.8.10
- Lifecycle 2.6.x+ 完全兼容 Kotlin 1.8.x,若使用旧版Lifecycle,建议升级到
2.6.2或更高版本。
4. 清理重建项目
执行以下命令清理缓存并重新编译:
./gradlew clean build
或在Android Studio中点击File -> Invalidate Caches... -> Invalidate and Restart。
内容的提问来源于stack exchange,提问作者Vaishnav Kanhirathingal
相关产品推荐
相关产品推荐

