Migration to Play! 2.5 leads to this error: NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter

Migration to Play! 2.5 leads to this error: NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter

我正在更新我的 Play!从 2.4 到 2.5.10 的 Scala 应用程序,我得到了这个运行时异常:

java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter;

关于 Akka 的 build.sbt 部分没有改变,如下所示(使用 akkaVersion 2.4.14):

"com.typesafe.akka" %% "akka-distributed-data-experimental" % akkaVersion,
"com.typesafe.akka" %% "akka-cluster" % akkaVersion,
"com.typesafe.akka" %% "akka-contrib" % akkaVersion,
"com.typesafe.akka" %% "akka-slf4j" % akkaVersion)

如果我禁用关于 clusterActorRefProvider 的 conf(即 akka.actor.provider = "akka.cluster.ClusterActorRefProvider")部分,我只会收到此错误:

needs to have a 'ClusterActorRefProvider' enabled in the configuration, currently uses [akka.actor.LocalActorRefProvider]

堆栈跟踪对我帮助不大,因为它没有引用任何文件 我的申请。 这是开头:

1) Error injecting method, java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter; at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149) at play.api.libs.concurrent.AkkaGuiceSupport$class.bindActor(Akka.scala:139) (via modules: com.google.inject.util.Modules$OverrideModule -> Modules) Caused by: java.lang.NoSuchMethodError: akka.actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter; at akka.remote.RemoteActorRefProvider.<init>(RemoteActorRefProvider.scala:132)

我不知道我必须在哪里找到问题的原因...

编辑: 只是更改 Play 的版本!从 2.5.10 到 2.5.9 使异常消失。

检查您的 Akka 版本。我早些时候有同样的问题。我从 2.4.4 移动 -> 2.4.14 解决了问题。

如需进一步阅读,可以找到源代码 here