scala - 声明变量时出现 NoSuchMethodError

标签 scala exception

我在使用 Spark 和 Scala 时遇到了一个奇怪的错误。我有一段代码声明了一个变量:

var offset = 0

这会导致以下异常:
java.lang.NoSuchMethodError: scala.runtime.IntRef.create(I)Lscala/runtime/IntRef;
   at my.package.MyClass$class.myMethod(MyClass.scala:5)
   ...

它直接指向变量声明。我正在使用 Scala 2.11.2。编译工作。这是一个运行时错误。运行 sbt package 时,我没有收到任何依赖项/版本不匹配警告任何一个。

最佳答案

这几乎可以肯定是 Scala 版本不匹配。
对比v2.10和v2.11中IntRef的定义,可以看到create仅在后一个版本中引入(参见 https://github.com/scala/scala/blob/v2.10.4/src/library/scala/runtime/IntRef.javahttps://github.com/scala/scala/blob/v2.11.0/src/library/scala/runtime/IntRef.java )。
您可以打赌,您的某些依赖项是针对 <2.11.0 的 Scala 版本编译的。
您可能想尝试 sbt-dependency-graph ( https://github.com/jrudolph/sbt-dependency-graph ) 来检查您的传递依赖项。

关于scala - 声明变量时出现 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27925375/

相关文章:

java - EJB 2.x "reentrant method call detected"异常的原因是什么?如何解决?

scala - 如何更改 Akka 和 Logback 日志记录级别

scala - 将主题映射回 Spark LDA 中的文档

wpf - WCF服务中的CommunicationObjectAbortedException和CommunicationObjectFaultedException

JAVA。我收到 'unreported exception' 编译器错误

python - 将文本转换为 numpy 数组

java - Applet java 用 chrome 抛出异常

Scala:无需创建对象即可获取默认值

java - Spark RDD- map 与 mapPartitions

scala - 如何将我的Spray API部署到生产中?