spray-json运行报错spray.json.package$类不存在如何解决
问题原因
该错误是运行时类路径下不存在spray-json的相关类导致的,常见触发原因如下:
- 构建配置中未正确引入spray-json依赖,或引入的依赖版本与项目所用的Scala版本、运行环境(JVM/Scala.js)不匹配
- 依赖的scope配置错误,比如将spray-json设为了
provided、test这类仅编译/测试生效的范围,运行时不会加载 - 多模块项目中,仅在父模块或其他非当前代码所在模块引入了spray-json依赖,当前模块未继承或单独引入
- 本地构建缓存损坏,依赖没有被正确打包到运行时类路径
解决办法
按以下步骤逐一排查即可:
- 检查构建配置的依赖声明
如果是sbt项目,普通JVM场景要添加和Scala版本匹配的依赖:
如果是Scala.js项目,要使用libraryDependencies += "io.spray" %% "spray-json" % "1.3.6"%%%适配Scala.js版本:
如使用Maven/Gradle等其他构建工具,也需要确认依赖的artifactId后缀和项目Scala版本对应,避免版本不兼容。libraryDependencies += "io.spray" %%% "spray-json" % "1.3.6" - 确认spray-json依赖没有添加
provided、test这类限制范围的配置,保证运行时可以加载到相关类 - 多模块项目需要确认当前编写代码的模块已经正确引入spray-json依赖
- 清理本地构建缓存后重新编译,sbt项目可执行命令:
sbt clean compile
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

