添加ProgressIndicator导致应用崩溃问题求助
解决Compose Material3进度指示器崩溃问题
问题原因
你遇到的java.lang.NoSuchMethodError是Compose各模块版本不兼容导致的:Material3的CircularProgressIndicator和LinearProgressIndicator依赖了androidx.compose.animation.core.KeyframesSpecConfig类的at()方法,但当前项目中拉取的Compose动画核心库版本没有这个方法——根源是你未明确指定Compose相关依赖的统一版本,导致不同模块版本不匹配。
解决方案
方案1:使用Compose BOM统一版本(推荐)
Compose BOM会自动管理所有Compose模块的版本兼容性,无需手动逐个指定版本:
// 先添加Compose BOM,统一管理所有Compose模块版本 implementation(platform("androidx.compose:compose-bom:2024.03.00")) // 原有依赖保留,无需指定Compose相关版本 implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") implementation("androidx.activity:activity-compose:1.8.0") implementation("androidx.compose.ui:ui") implementation("androidx.compose.material3:material3") // 按需添加预览、工具类依赖(可选) implementation("androidx.compose.ui:ui-tooling-preview") debugImplementation("androidx.compose.ui:ui-tooling")
方案2:手动指定统一版本
如果不想用BOM,需确保所有Compose相关依赖版本完全一致,比如Material3 1.2.0对应Compose UI 1.6.1:
implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") implementation("androidx.activity:activity-compose:1.8.0") implementation("androidx.compose.ui:ui:1.6.1") implementation("androidx.compose.material3:material3:1.2.0") implementation("androidx.compose.animation:animation-core:1.6.1") // 明确指定动画核心库版本
最后一步:清理项目并重建
执行以下操作确保缓存清理干净:
- 运行命令:
./gradlew clean(Windows系统用gradlew clean) - 重新同步Gradle,再运行项目
内容的提问来源于stack exchange,提问作者Julius Babies
相关产品推荐
相关产品推荐

