Hilt依赖注入编译错误:找不到PlayerViewModel_HiltModules相关类
解决Hilt+KSP编译错误:找不到
PlayerViewModel_HiltModules_BindsModule_Binds_LazyMapKey 错误信息
Cannot find symbol import xyz.linglitel.lmusic.viewmodel.PlayerViewModel_HiltModules_BindsModule_Binds_LazyMapKey; Symbol: class PlayerViewModel_HiltModules_BindsModule_Binds_LazyMapKey Location: package xyz.linglitel.lmusic.viewmodel
解决方案
1. 统一Hilt版本,修复版本不兼容
项目中Hilt插件、依赖、编译器版本不一致会导致KSP生成代码不匹配:
- 修改
libs.toml的[versions]区块,统一Hilt版本:[versions] # ... 其他版本 hiltAndroid = "2.55" hiltAndroidCompiler = "2.55" - 确保根目录
build.gradle.kts中的Hilt插件版本(2.55)与依赖版本一致。
2. 移除重复依赖与冲突配置
模块build.gradle.kts存在重复依赖和混合注解处理器的问题:
- 移除Room的
annotationProcessor配置(Kotlin项目仅需KSP):// 删除此行 annotationProcessor("androidx.room:room-compiler:$room_version") - 删除重复的
kotlinx-coroutines-android依赖(保留一次即可)。
3. 彻底清理缓存并重建项目
执行以下步骤清除残留的生成代码与缓存:
- 点击Android Studio菜单
Build > Clean Project - 删除项目根目录的
.gradle文件夹 - 删除模块目录的
build文件夹 - 点击
Build > Rebuild Project
4. 检查MediaPlaybackService的Manifest注册
确保服务在AndroidManifest.xml中正确注册,否则SessionToken的创建会间接影响Hilt代码生成:
<service android:name=".MediaPlaybackService" android:exported="true"> <intent-filter> <action android:name="androidx.media3.session.MediaLibraryService"/> </intent-filter> </service>
5. 验证KSP配置正确性
确认模块build.gradle.kts中:
- 已正确应用KSP插件
- Hilt编译器通过
ksp(libs.hilt.android.compiler)引入,而非annotationProcessor
内容的提问来源于stack exchange,提问作者lin
相关产品推荐
相关产品推荐

