WearOS使用ScreenScaffold触发NoSuchMethodError崩溃求助
解决WearOS中
ScreenScaffold调用崩溃的问题 问题根源
这个NoSuchMethodError本质是依赖版本不兼容:ScreenScaffold属于Wear Compose专属组件,你的项目要么缺失了对应的Wear Compose核心依赖,要么依赖版本与Compose BOM、Kotlin Compiler Extension版本不匹配,导致运行时找不到预期的方法。
解决方案
1. 补充缺失的Wear Compose核心依赖
你的build.gradle.kts中未明确引入Wear Compose的foundation和material依赖,这是核心问题。在dependencies块中添加:
// Wear Compose 核心组件依赖 implementation(libs.androidx.wear.compose.foundation) implementation(libs.androidx.wear.compose.material)
如果使用libs.versions.toml管理版本,需确保这两个依赖的版本与项目中androidx.compose.bom的版本兼容(例如BOM版本为2024.02.00时,Wear Compose版本对应为1.4.0)。
2. 对齐Compose相关版本
- Kotlin Compiler Extension Version:当前你使用的
1.5.1需要与Kotlin版本、Compose BOM版本严格匹配。例如:- Kotlin 1.9.0 → Compose Compiler 1.5.1
- Kotlin 1.9.20 → Compose Compiler 1.5.4
若Kotlin版本通过libs.plugins.jetbrains.kotlin.android管理,务必保证两者版本对应。
- 移除冲突依赖:你的依赖中同时引入了
material、material3、androidx.compose.material和androidx.compose.material3,易引发版本冲突。建议统一使用Wear版Material3,移除冗余的material和androidx.compose.material依赖。
3. 清理缓存并重建项目
版本不兼容问题常伴随缓存残留,执行以下操作:
- 在Android Studio中点击
File → Invalidate Caches... → Invalidate and Restart - 或终端执行命令:
./gradlew clean ./gradlew assembleDebug
额外检查
- 可移除
useLibrary("wear-sdk")配置:已引入Wear Compose依赖时,该配置易引发SDK版本冲突。 - Horologist库版本需与Wear Compose兼容:例如Horologist 0.7.x对应Wear Compose 1.4.x,可参照官方文档调整版本。
内容的提问来源于stack exchange,提问作者DasKeksSchwert3
相关产品推荐
相关产品推荐

