运行安卓项目报IllegalStateException及内部编译错误该如何解决
问题根因
该报错是Jetpack Compose依赖版本不统一触发的Kotlin内部编译器错误,你当前项目中的Compose相关依赖混合了beta06、beta07以及早已废弃的dev03版本,版本冲突直接导致了编译异常。
修复步骤
- 第一步:统一所有Jetpack Compose相关依赖版本,删除废弃依赖
首先移除项目中早已废弃的androidx.ui:ui-framework:0.1.0-dev03依赖,该包已经被合并到正式的Compose UI组件中,保留会引发严重冲突。之后将所有Compose相关依赖统一为同一个版本,参考配置如下:def compose_version = "1.0.0-beta07" implementation "androidx.compose.material:material:$compose_version" implementation "androidx.compose.ui:ui-tooling:$compose_version" implementation "androidx.compose.ui:ui:$compose_version" implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha07" implementation "androidx.navigation:navigation-compose:2.4.0-alpha01" implementation "androidx.activity:activity-compose:1.3.0-alpha07" implementation "androidx.compose.animation:animation:$compose_version" implementation "androidx.compose.animation:animation-core:$compose_version" implementation "androidx.compose.runtime:runtime-livedata:$compose_version" implementation "com.airbnb.android:lottie-compose:1.0.0-beta07-1" - 第二步:匹配Kotlin版本兼容关系
Jetpack Compose 1.0.0-beta07对应的兼容Kotlin版本为1.4.32,你当前使用的1.4.31版本可以升级到1.4.32,避免版本不兼容问题。 - 第三步:清理项目缓存
- 点击Android Studio顶部菜单 File -> Invalidate Caches / Restart,选择Invalidate and Restart
- 重启后依次执行 Build -> Clean Project,再执行 Build -> Rebuild Project
- 第四步:核对Compose编译配置
检查项目级build.gradle文件中的composeOptions配置,确认kotlinCompilerExtensionVersion和你使用的Compose版本完全一致:android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion "1.0.0-beta07" } kotlinOptions { jvmTarget = "1.8" } }
额外说明:你项目中重复引入了两次androidx.cardview:cardview:1.0.0,可以删除其中一条,减少不必要的依赖冗余。
内容的提问来源于stack exchange,提问作者Sparsh Dutta
相关产品推荐
相关产品推荐

