添加Dagger Hilt后出现java.lang.NoClassDefFoundError: kotlin/streams/jdk8/StreamsKt错误
解决Dagger Hilt集成后出现
kotlin/streams/jdk8/StreamsKt类找不到的问题 问题分析
这个NoClassDefFoundError本质是项目缺少Kotlin Streams JDK8的依赖库。你使用的Dagger Hilt 2.44版本依赖了该库,但项目未显式引入,再加上Kotlin版本(1.7.10)与Hilt依赖链路存在版本不匹配,最终导致类加载失败。
解决方案
1. 显式添加对应版本的kotlin-streams-jdk8依赖
在模块级build.gradle的dependencies块中添加以下依赖,版本需与你使用的Kotlin Gradle插件版本(1.7.10)完全一致:
dependencies { // 保留原有依赖 implementation "com.google.dagger:hilt-android:2.44" kapt "com.google.dagger:hilt-compiler:2.44" // 添加Kotlin Streams JDK8依赖 implementation "org.jetbrains.kotlin:kotlin-streams-jdk8:1.7.10" }
2. 同步并重建项目
点击Android Studio右上角的「Sync Now」同步依赖,之后依次执行「Clean Project」和「Rebuild Project」,再重新运行应用。
3. 升级Kotlin与Hilt版本(可选,若上述方法无效)
如果添加依赖后问题仍存在,建议升级到更兼容的版本组合:
- 项目级
build.gradle修改classpath:
dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22" classpath "com.google.dagger:hilt-android-gradle-plugin:2.48" }
- 模块级
build.gradle更新Hilt依赖和streams版本:
dependencies { implementation "com.google.dagger:hilt-android:2.48" kapt "com.google.dagger:hilt-compiler:2.48" implementation "org.jetbrains.kotlin:kotlin-streams-jdk8:1.8.22" }
内容的提问来源于stack exchange,提问作者naggab
相关产品推荐
相关产品推荐

