2014-04-27 7 views
7

Ich versuche, ein Klon des Spiels Projekt, das ich von git clone https://github.com/djonmayer/play21-osm.gitWenn „spielen“ java.lang.NoSuchMethodError läuft tritt

Ich habe Play-Version 2.2.2 und scala Version 2.10.4 installiert bekam zu laufen .

Wenn ich tippe in dem Verzeichnis spielen, die das Projekt Klont ich die folgende Fehlermeldung erhalten:

java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps; 
    at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:129) 
    at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala) 
    at sbt.StandardMain$.<init>(Main.scala:52) 
    at sbt.StandardMain$.<clinit>(Main.scala) 
    at sbt.xMain.run(Main.scala:26) 
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:57) 
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:77) 
    at xsbt.boot.Launch$.run(Launch.scala:57) 
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45) 
    at xsbt.boot.Launch$.launch(Launch.scala:65) 
    at xsbt.boot.Launch$.apply(Launch.scala:16) 
    at xsbt.boot.Boot$.runImpl(Boot.scala:32) 
    at xsbt.boot.Boot$.main(Boot.scala:21) 
    at xsbt.boot.Boot.main(Boot.scala) 
Error during sbt execution: java.lang.NoSuchMethodError: scala.Predef$.augmentString(Ljava/lang/String;)Lscala/collection/immutable/StringOps; 

Dies gilt, wenn ich play clean laufen. Ich habe gelesen, dass dies ein Abhängigkeitsproblem sein kann, also habe ich versucht, die Zeile scalaVersion := "2.10.4" in den play.Project.settings Abschnitt von Build.scala und separat in einer build.sbt Datei hinzuzufügen. Es hat nicht funktioniert.

Antwort

1

Diese Art von Problem ist, beziehen sich häufig auf zwei ähnliche prolbem:

  • fehlt Glas mit derselben Klasse
  • gleichen Klasse in mehrere jar

Also, wenn scala überprüfen und Version sind kompatibel spielen und wenn Sie ein Jar enthalten, das die Klasse mit der fehlenden Methode bereits enthält.

+0

Um dies zu erreichen, wenn Sie noch nicht fertig sind, könnten Sie versuchen, das Projekt mit der Originalversion auszuführen? Sobald Sie das sicher wissen, können Sie versuchen, eine Portierung auf die neue Framework-Version durchzuführen. – zeppaman

+0

Ich suche auch nach ähnlichen issuse, aber ich fand nur, dass http://Stackoverflow.com/q/20644948/3559251, wo @ La-comadreja durch das Verwalten von Klassen auf Klassenpfad gelöst – zeppaman

+0

Ich hatte diesen Thread gesehen, aber ich verstehe nicht Was muss ich aus der Antwort machen? "Die Lösung bestand darin, die relevante Klasse in den Klassenpfad zu stellen." –

8

Ich habe versucht, dies in einen Kommentar zu schreiben, aber es war nicht lesbar.

Danke, Zeppaman. Es sieht so aus, als ob dieses Problem mit der Ausführung eines Play Framework-Projekts zusammenhängt, das in einer älteren Version von Play erstellt wurde. Als ich mir ein anderes Projekt anschaute, das sich zu einer neuen Spielversion verpflichtet hatte, habe ich folgende Änderungen vorgenommen.

In build.properties:

sbt.version=0.12.2 

wurde:

sbt.version=0.13.0 

In plugins.sbt:

addSbtPlugin("play" % "sbt-plugin" % "2.1.1") 

wurde:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.2") 

Dies ermöglichte mir zu bekommen Update zu spielen, dann wirft die Fehler:

[error] Modules were resolved with conflicting cross-version suffixes in {file:/Users/michaelrichardson/Documents/Play/play21-osm/}play21-osm: 
[error] org.scala-stm:scala-stm _2.10, _2.10.0 
[trace] Stack trace suppressed: run last *:update for the full output. 
[error] (*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm 

ich die Linie in Build.scala ändern:

"com.typesafe.play" %% "play-slick" % "0.3.2" 

wurde:

"com.typesafe.play" %% "play-slick" % "0.5.0.2-SNAPSHOT" 

EXTRA: Dies ändert den Fehler in:

[info] Resolving com.typesafe.play#play-slick_2.10;0.5.0.2-SNAPSHOT ... 
[warn] module not found: com.typesafe.play#play-slick_2.10;0.5.0.2-SNAPSHOT 
[warn] ==== Typesafe Releases Repository: tried 
[warn] http://repo.typesafe.com/typesafe/releases/com/typesafe/play/play-slick_2.10/0.5.0.2-SNAPSHOT/play-slick_2.10-0.5.0.2-SNAPSHOT.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: com.typesafe.play#play-slick_2.10;0.5.0.2-SNAPSHOT: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[trace] Stack trace suppressed: run last *:update for the full output. 
[error] (*:update) sbt.ResolveException: unresolved dependency: com.typesafe.play#play-slick_2.10;0.5.0.2-SNAPSHOT: not found 

UPDATE: Gelöst ungelöste Abhängigkeit

Das Problem der ungelösten Abhängigkeiten scheint, wie es aufgrund meiner lokalen sbt/Efeu-Repositories immer beschädigt worden sein.Siehe unresolved dependency: com.typesafe.play#play-slick_2.10;0.6.0.1: not found

+0

play-slick ist nicht in der Position vorhanden, die es sucht http://repo.typesafe.com/typesafe/releases/com/typesafe/play/ Weiß jemand, wo es nach Play-Slick suchen sollte? –

+0

danke für die Info. Das Spiel scheint zu fehlerhaft zu sein. Die Fragilität der Version kommt zu mir. – Jus12

Verwandte Themen