【问题标题】:Scala - What is this NoSuchMethodError telling me?Scala - 这个 NoSuchMethodError 告诉我什么?
【发布时间】:2015-07-17 22:18:13
【问题描述】:

我在运行单元测试时收到NoSuchMethodError。我的 Scala 代码编译成功了,为什么在运行时找不到方法?

java.lang.NoSuchMethodError: com.twitter.algebird.Analytics$.mean(Lscala/Function2;)Lscala/Function1;

(Lscala/Function2;)Lscala/Function1; 是什么意思?

【问题讨论】:

  • 你能发布导致它的代码吗?
  • 第二个问题与stackoverflow.com/questions/8343593/…重复
  • 二进制/源不兼容?
  • 当使用增量构建(如在 IntelliJ IDE 中)时,也可能意味着在某些签名更改后构建损坏。完整的重建解决了这个问题。

标签: scala


【解决方案1】:

这通常表明您正在使用二进制不兼容的库,例如您的依赖项不匹配(您有库 A 版本 X 和库 B 假定库 A 版本 Y)。

如果您使用 sbt 构建,您可以运行 sbt evicted,它会向您发出有关可能不兼容的库的警告。

【讨论】:

  • 如果你使用 maven,你可以查看 mvn dependency:tree,或者 eclipse 有一个很好的 UI 可以查看特定库中的内容。
猜你喜欢
  • 2015-08-29
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 2013-05-29
相关资源
最近更新 更多