【问题标题】:NoSuchMethodError when initialising actors in Scala 2.8在 Scala 2.8 中初始化演员时出现 NoSuchMethodError
【发布时间】:2012-03-07 19:22:42
【问题描述】:

我最近降级到 Scala 2.8,现在每当我尝试初始化一个演员时,我都会收到以下错误消息:

java.lang.NoSuchMethodError: scala.actors.ReactorCanReply$class.$init$(Lscala/actors/ReactorCanReply;)V

显然this guy 有同样的问题,但没有找到解决方案。有其他人遇到过并解决了吗?

我认为可能在 Scala 2.8 和 2.9 文件之间在后台进行了一些融合,所以我尝试卸载并重新安装 Scala 和 Eclipse,删除所有二进制文件并重新构建,甚至创建一个新的 Eclipse 项目并复制我的源文件,但问题仍然存在。

我的堆栈跟踪:

Exception in thread "main" java.lang.NoSuchMethodError: scala.actors.ReactorCanReply$class.$init$(Lscala/actors/ReactorCanReply;)V
at uk.mike.blackjack.PlayerReceiver.<init>(PlayerReceiver.scala:11)
at uk.mike.blackjack.Blackjack$.main(Blackjack.scala:141)
at uk.mike.blackjack.Blackjack.main(Blackjack.scala)

【问题讨论】:

  • 您是否将 Scala 2.9.x 二进制文件与 2.8 二进制文件混合使用?这通常会导致这类错误。
  • 可能是。我尝试删除并重建我所有的二进制文件,但也许 Eclipse 正在做一些奇怪的事情。
  • 更多上下文(比如堆栈跟踪)会有所帮助。

标签: eclipse scala scala-2.8 actor


【解决方案1】:

从 Scala 编译的 Java 字节码不向后兼容。在 Scala 2.10 版本之前升级到任何新的 Scala 版本时,您必须重新编译所有 scala 文件及其依赖项。

顺便说一句:Scala 2.10 承诺在未来保持所有 2.10.x 版本之间的向后兼容。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 2021-11-24
    • 2019-01-31
    • 2015-03-24
    相关资源
    最近更新 更多