2017-12-22 5 views
1

ich versuche, eine ActorSystem wie untenActorSystem ("MySystem") werfen java.lang.NoSuchMethodError

import akka.actor.{ActorRef, ActorSystem, Props} 

object Main { 
    def main(args: Array[String]) { 

    val system: ActorSystem = ActorSystem("MySystem") 
    } 
} 

die Abhängigkeiten in meinem pom.xml zu instanziiert ist wie folgt:

<dependencies> 
    <dependency> 
     <groupId>com.typesafe.akka</groupId> 
     <artifactId>akka-actor_2.11</artifactId> 
     <version>2.5.0</version> 
    </dependency> 
    <dependency> 
     <groupId>net.alchim31.maven</groupId> 
     <artifactId>scala-archetype-simple</artifactId> 
     <version>1.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.scala-lang</groupId> 
     <artifactId>scala-library</artifactId> 
     <version>2.11.1</version> 
    </dependency> 
</dependencies> 

Ich denke, Ich habe einen Konflikt in der Version von Scala und Akka. Ich habe mehrere Kombination versucht, aber ich bekomme immer diese Ausnahme:

Exception in thread "main" java.lang.NoSuchMethodError:

scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object; 
    at akka.actor.setup.ActorSystemSetup$$anonfun$apply$1.apply(ActorSystemSetup.scala:36) 
    at akka.actor.setup.ActorSystemSetup$$anonfun$apply$1.apply(ActorSystemSetup.scala:36) 
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) 
    at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34) 
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) 
    at scala.collection.AbstractTraversable.map(Traversable.scala:105) 
    at akka.actor.setup.ActorSystemSetup$.apply(ActorSystemSetup.scala:36) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:287) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:232) 
    at Main$.main(Main.scala:9) 
    at Main.main(Main.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

Haben Sie eine Idee?

+0

Mögliches Duplikat von [Keine Option zum Wiedereingliedern von Abhängigkeiten in Maven (IntelliJ)] (https://stackoverflow.com/questions/39197849/no-option-to-reimport-dependencies-in-maven -intellij) –

Antwort

0

Ich benutze Intellij IDE und in Datei -> Projektstruktur gibt es einen Abschnitt namens Globale Bibliothek, wo Scala SDK 2.10 betroffen war. zu 2.11 wechseln das Problem korrigieren

+1

Ich habe überprüft und es scheint eine Maven/Reimport-Option im Kontextmenü des Moduls zu sein. Wenn Sie in den globalen Bibliotheken manuelle Änderungen vornehmen, wird es bald wieder zu Problemen kommen. –

-1

Sicher, sollten Sie die Version Akka verwenden, um Ihre Scala Version entspricht, 2.12:

<dependency> 
    <groupId>com.typesafe.akka</groupId> 
    <artifactId>akka-actor_2.12</artifactId> 
    <version>2.5.0</version> 
</dependency> 

Scala 2.11 und 2.12 Scala-Versionen nicht binär kompatibel sind.

+0

Hallo danke für die Antwort. Ich ersetze Scala Version zu 2.11.1, aber ich bekomme den gleichen Fehler. Ich werde meinen Beitrag mit deinem Kommentar bearbeiten. –

+0

Verwenden Sie eine IDE? Haben Sie die Konfiguration nach der Änderung aktualisiert? (Ich denke, das ist notwendig in Eclipse m2e, nicht sicher über andere.) (BTW: Wenn Sie nicht Scala 2.12 (.4) verwenden möchten, sollten Sie 2.11.12, nicht 2.11.1.) Verwenden –

+0

Ich benutze Intellij aber was meinst du mit update meine konfiguration? –

Verwandte Themen