繁体   English   中英

神秘的Scalaz NoClassDefFoundError和scalaz.InvariantFunctor错误

[英]Mysterious Scalaz NoClassDefFoundError and scalaz.InvariantFunctor errors

我有以下build.sbt,并且正在运行IntelliJ管理sbt并基于sbt构建文件刷新项目的Scala 2.10.4。 一切正常,直到我添加了scalaz-streams为止-我似乎无法使用scalaz.concurrent.Task而不会遇到以下错误之一:


// build.sbt

name := "ScalazStreamsAkka"

version := "1.0"


resolvers += "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases"

resolvers ++= Seq(
  Resolver.sonatypeRepo("releases"),
  Resolver.sonatypeRepo("snapshots")
)

libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.1.0"

libraryDependencies += "org.scalaz" %% "scalaz-concurrent" % "7.1.0"

//libraryDependencies += "org.scalaz.stream" %% "scalaz-stream" % "0.5a"

libraryDependencies += "org.typelevel" %% "scodec-core" % "1.3.0"

libraryDependencies ++= Seq(
  "com.chuusai" % "shapeless_2.10.4" % "2.0.0"
)

与此build.sbt,发生此错误:

scala> import scalaz.concurrent.Task
import scalaz.concurrent.Task

scala> Task
java.lang.IncompatibleClassChangeError: Class scalaz.concurrent.Task$$anon$1 does not        implement the requested interface scalaz.InvariantFunctor

如果我取消注释“ scalaz-concurrent”,则会发生相同的错误:

scala> import scalaz.concurrent.Task
import scalaz.concurrent.Task

scala> Task
java.lang.IncompatibleClassChangeError: Class scalaz.concurrent.Task$$anon$1 does not     implement the requested interface scalaz.InvariantFunctor`

如果我尝试运行这些最新示例...

val ones: Process[Task,Int] = Process.constant(1)

/* A stream which emits `0, 1, 2 ... 99`. */
val zeroTo100: Process[Task,Int] = Process.range(0,100)

也会发生相同的错误。


其他时候,我遇到了这个错误:

scala>     val expensiveInt: Task[Int] = Task { 41 + 1 }
java.lang.NoClassDefFoundError: Could not initialize class scalaz.concurrent.Task$

有谁知道我如何使用scalaz流而不会遇到这些奇怪的错误? 我正在尝试将scalaz流与akka演员和期货一起使用,以及可能不定型和scodec。

我自己修好了。 解决方案是创建一个新的intellij项目,删除无形的+ scodec,并通过SBT(通过添加libraryDependency + =)代替atellij的maven组件来使akka依赖关系得以解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM