2012-06-28 41 views
1

因此,我使用的是一個圖表庫,它具有在build.sbt中列爲2.8.1的Scala的依賴關係。我試圖將其更改爲斯卡拉2.9.2,它編譯罰款,但得到這個運行時錯誤:Scala 2.8.1 => 2.9.2 RangeByOne NoSuchMethod錯誤

[error] (run-main) java.lang.NoSuchMethodError: scala.runtime.RichInt.until(I)Lscala/collection/immutable/Range$ByOne; 
java.lang.NoSuchMethodError: scala.runtime.RichInt.until(I)Lscala/collection/immutable/Range$ByOne; 

它還列出了在錯誤的亂七八糟的行號,我就追蹤到像一行代碼:

for (i <- 0 to x) 

我敢肯定斯卡拉2.9.2確實有to方法..我缺少什麼?

謝謝!

+0

似乎在運行時你'x'是隱式轉換爲'java.runtime.RichInt'。因此它引發了錯誤。我現在得到這個問題了...... – 2012-10-26 03:21:40

回答

2

這看起來像你正在使用編譯爲2.9.x的代碼編譯爲2.8.x的某些庫。這樣做是不可能的。

編輯

好吧,我檢查了Cassovary,和我想象你沒有改變的Scala版本規格。我查了一下版本可供選擇,我建議你改變它的行這樣的:

libraryDependencies += "org.scala-tools.testing" % "specs_2.9.1" % "1.6.9" % "test" withSources() 
+0

我把庫的源代碼本身分離出GitHub,並簡單地將build.sbt改爲2.9.2而不是2.8.1--這不是在我自己的項目中用庫的.jar文件完成的。還是我不能那樣做? – adelbertc

+0

@kstruct我不確定你做了什麼。你能爲你的項目提供sbt構建文件嗎?我認爲錯誤在你的項目中?或者在那個圖書館? –

+0

圖書館。它使用Twitter的Cassovary圖書館https://github.com/twitter/cassovary。我分叉了repo,修改了'build.sbt'來製作Scala 2.9.2版本,它給了我上面的錯誤。具體來說,如果我在改變它之後執行'sbt test'命令,它會失敗很多測試,給我錯誤如上。 – adelbertc

相關問題