我尝试运行项目时遇到此错误消息:
Error:scalac: bad symbolic reference to scala.ScalaObject encountered in class file 'package.class'.
Cannot access type ScalaObject in package scala. The current classpath may be
missing a definition for scala.ScalaObject, or package.class may have been compiled against a version that's incompatible with the one found on the current classpath.
有类似的问题here和here,但似乎没有一个问题适用于我的情况 - 我的情况并非如此。我唯一要做的就是scalaObject.
这是一次突然的破坏 - 这个项目是在IntelliJ IDEA内部用sbt进行的,直到今天才开始查找。突然间,它找不到它需要的东西。
这是整个build.sbt
文件:
name := "MyApp"
libraryDependencies ++= Seq(
"joda-time" % "joda-time" % "2.3",
"org.joda" % "joda-convert" % "1.6",
"org.scala-lang" % "scala-swing" % "2.9.2",
如何解决此问题?
答案 0 :(得分:0)
我相信您可能已更改sbt.version
中的project/build.properties
或scalaVersion
中的build.sbt
。或只是sbt
发射器。或IntelliJ IDEA的Scala插件。可能是这样吗?
我基于“或者package.class可能是针对某个版本进行编译的 与当前类路径中找到的不兼容。“。
您可能希望在update
中看到target\resolution-cache\reports
报告。
答案 1 :(得分:0)
您提到您使用的是IntelliJ IDEA。我正在使用Scala IDE for Eclipse,我遇到了这个错误。它仅在我在IDE配置中关闭此选项时发生:
withVersionClasspathValidator - 检查类路径中的jar的Scala兼容性
当此选项打开时,我得到了:
mongo-casbah-commons_2.8.1-2.1.2.jar使用不兼容的Scala版本(2.8.1)进行交叉编译。
我是Scala的新手,但这似乎是因为我正在使用Scala 2.11.2进行编译,但我包含了一个使用Scala 2.8.1构建的jar。