2014-04-27 37 views
7

我試圖運行遊戲項目,我從混帳克隆了https://github.com/djonmayer/play21-osm.git當運行「玩」 java.lang.NoSuchMethodError發生

我已經打版2.2.2和Scala版本2.10.4安裝的克隆。

當我鍵入該項目克隆我得到以下錯誤的目錄播放:

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; 

,如果我跑play clean這是真實的。我讀過這可能是一個依賴關係問題,所以我嘗試將scalaVersion := "2.10.4"行添加到Build.scala的play.Project.settings部分,並單獨在build.sbt文件中。它沒有工作。

回答

1

這種問題往往涉及到兩個類似prolbem:

  • 與同級別失蹤罐子
  • 同一類爲多個罐子

所以檢查Scala和打版兼容如果你已經包含一個已經包含缺少方法的類的jar。

+0

要達到此目的,如果尚未完成,是否可以嘗試使用原始版本運行項目?一旦你確實知道,你可以嘗試移植到新版本的框架。 – zeppaman

+0

我也在尋找相似的issuse,但是我發現只有http://stackoverflow.com/q/20644948/3559251,其中@ La-comadreja通過管理類路徑上的類來解決 – zeppaman

+0

我曾經看過那個線程但我不明白我需要從答案中做出什麼,「解決辦法是把相關班級放在班級路徑中。」 –

8

我試圖把它放在評論中,但它是不可讀的。

謝謝,zeppaman。看起來這個問題看起來像是運行在舊版Play中創建的Play Framework項目。通過查看另一個承諾升級到新版本的項目,我進行了以下更改。

在build.properties:

sbt.version=0.12.2 

變成了:

sbt.version=0.13.0 

在plugins.sbt:

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

變成了:

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

這使我能夠得到發揮的更新,然後拋出錯誤:

[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 

我改線Build.scala:

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

變成了:

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

EXTRA:這將錯誤更改爲:

[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:解決懸而未決的依賴

未解決的依賴性的問題,好像它可能是由於我的本地SBT /常春藤庫得到損壞。請參閱unresolved dependency: com.typesafe.play#play-slick_2.10;0.6.0.1: not found

+0

play-slick不存在於它正在搜索的位置http://repo.typesafe.com/typesafe/releases/com/typesafe/play/有誰知道它應該在哪裏搜索play-slick? –

+0

感謝您的信息。玩似乎太麻煩了。版本的脆弱性正在讓我。 – Jus12

相關問題