Kotlin Skiko项目启动抛出ClassNotFoundException异常该如何解决?
问题修复方案
报错原因说明
你遇到的两个报错都是协程依赖缺失导致的:
- 第一个
NoClassDefFoundError: kotlinx/coroutines/GlobalScope是缺少协程核心依赖 - 第二个
NoClassDefFoundError: kotlinx/coroutines/swing/SwingDispatcherKt是缺少协程的Swing扩展依赖,该依赖没有包含在core包中,需要单独引入
具体修复步骤
- 修改
build.gradle.kts的dependencies块,替换原有协程相关依赖为以下内容:
dependencies { testImplementation(kotlin("test")) implementation("org.jetbrains.skiko:skiko-jvm-runtime-$target:$skikoVersion") // 协程核心依赖,使用适配Kotlin 1.6.x的稳定版 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") // 新增协程Swing扩展依赖,解决SwingDispatcherKt找不到的问题 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.6.4") }
- 刷新Gradle项目:点击IDEA右侧Gradle面板的刷新按钮,或者右键项目选择
Reload Gradle Project - 清理旧构建缓存:点击顶部菜单栏
Build -> Clean Project,再执行Build -> Rebuild Project - 重新运行main函数即可
额外排查项
如果按照上述步骤操作后仍然报错,检查IDEA的运行配置:
- 打开运行配置面板,找到你运行的main函数对应的配置
- 确认
Modify options -> Do not build before run选项处于未勾选状态 - 确认
Run on选项选择的是<Default Gradle Run Configuration>,而非本地JDK直接运行
内容的提问来源于stack exchange,提问作者Ivan1F
相关产品推荐
相关产品推荐

