Scala 如何修复NoSuchMethodError?

Scala 如何修复NoSuchMethodError?,scala,testing,Scala,Testing,我使用Scala 2.10.0RC1和sbt 0.12.1。 导致此运行时错误的原因以及如何修复此错误(在2.9.2上运行正常) 确切的错误消息是: java.lang.NoSuchMethodError:scala.Predef$ArrowAssoc$.extension$$减去$more(Ljava/lang/Object;Ljava/lang/Object;)Lscala/Tuple2 您使用错误的Scala版本运行代码。这可能有几个原因: sbt项目配置错误–在配置文件中搜索2.9.2

我使用Scala 2.10.0RC1和sbt 0.12.1。 导致此运行时错误的原因以及如何修复此错误(在2.9.2上运行正常)

确切的错误消息是:

java.lang.NoSuchMethodError:scala.Predef$ArrowAssoc$.extension$$减去$more(Ljava/lang/Object;Ljava/lang/Object;)Lscala/Tuple2


您使用错误的Scala版本运行代码。这可能有几个原因:

  • sbt项目配置错误–在配置文件中搜索2.9.2
  • sbt使用的过时缓存–
    sbt重新启动
  • 还有别的吗

如果仔细检查2.9.2的所有sbt配置文件,然后清除所有缓存,事情应该会运行得更好。依赖项通常在jar文件名中有一个版本号,因此在系统上运行find可能会指向您错过的版本号。

您的代码是在支持的情况下编译的,但在没有支持的情况下执行的。您确定要使用scala 2.10.0 RC1库运行它吗?我正在使用sbt 0.12.1和这些scala选项
Seq(“-unchecked”、“-deprecation”、“-feature”、“-language:reflectiveCalls”、“-language:implicitConversions”、“-language:postfix操作”、“-language:dynamics”、“-language:higherKinds”、“-language:existics”,“-language:experimental.macros”)
。我正在sbt内部运行代码(测试)。如何验证它是否使用了正确的库?测试中可能存在类似于
scalaVersion:=“2.9.2”的内容“
在Build.sbt文件中。我记得sbt在某处缓存旧Scala版本时遇到问题。在我删除了
~/.sbt
~/.ivy2
~/.m2
之后,问题就消失了。后来有人告诉我,
sbt重新启动
也会有帮助,但我还没有机会尝试。我只是遇到了同样的问题,最终删除了一个为sbt multi-jvm缓存jar文件的文件夹,解决了我的问题。我建议在你的电脑上搜索名为-2.9或2.10.0-M的文件,然后把它们清除掉。