升级Android Lifecycle 2.4.0后协程相关API出现未解析引用报错
根因说明
Lifecycle 2.4.0版本调整了KTX组件的依赖传递规则,lifecycle-viewmodel-ktx、lifecycle-runtime-ktx等模块依赖的Kotlin协程库改为间接传递依赖,Arctic Fox及更低版本的Android Studio语法索引逻辑无法正确识别这类间接传递的协程API。由于Gradle构建时可以正常拉取完整依赖链,因此应用可以正常编译运行,仅IDE会抛出未解析引用的错误提示。Lifecycle 2.3.1版本未调整该依赖规则,因此不会出现该IDE提示问题。
修复方案
- 方案1(全版本适配,推荐):在module级build.gradle的dependencies代码块中手动显式添加Kotlin协程依赖,版本选择与项目Kotlin版本匹配的版本即可,示例如下:
// 版本匹配规则:Kotlin 1.6.x对应协程1.6.x版本,Kotlin 1.7+对应协程1.7+版本 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
添加完成后重新同步Gradle,即可消除IDE的错误提示。
- 方案2:升级Android Studio到Chipmunk(2021.2.1)及更高版本,新版IDE已经修复了间接传递依赖的索引识别缺陷,无需修改依赖即可正常识别协程相关API。
内容的提问来源于stack exchange,提问作者Ghosty Frosty
相关产品推荐
相关产品推荐

