Scala 在intellij中导入外部库时未找到对象错误

Scala 在intellij中导入外部库时未找到对象错误,scala,intellij-idea,sbt,Scala,Intellij Idea,Sbt,这是我的sbt文件myproject/build.sbt version := "1.0" scalaVersion := "2.12.1" libraryDependencies ++= Seq( "com.typesafe.akka" %% "akka-actor" % "2.4.16", "io.circe" %% "circe-core" % "0.6.1", "io.circe" %% "circe-generic" % "0.6.1", "io.circe" %% "

这是我的sbt文件
myproject/build.sbt

version := "1.0"
scalaVersion := "2.12.1"
libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % "2.4.16",
  "io.circe" %% "circe-core" % "0.6.1",
  "io.circe" %% "circe-generic" % "0.6.1",
  "io.circe" %% "circe-parser" % "0.6.1"
)
这是我的scala文件
myproject/src/test.scala

package mytest
import akka._
object test {
    def main(args: Array[String]) {
      print(2)
    }
}
我验证了我的外部库包含akka

但是intellij一直这么说

Error:(7, 8) not found: object akka
import akka._
我正在使用带有最新scala插件(应包括最新sbt)的intellij community edition 2016.3


有人能告诉我如何解决这个问题吗?

要解决这个问题,您必须将Scala源文件放到
src/main/Scala
目录中。否则IntelliJ/SBT无法将其识别为与项目相关的文件,因此无法将项目依赖项与之关联

默认情况下,Scala源文件可以放在项目的根目录中,也可以放在
src/main/Scala
中(对于主源,还有
src/test/Scala
用于测试)

如果要使用其他目录存储Scala源文件,可以在
build.sbt
中以这种方式进行配置:

编译中的源目录+=新文件(“src”)
我也遇到了类似的问题,在我的例子中,这与目录结构无关。IntelliJ要求您在build.sbt中添加新依赖项时刷新。我还从SBT Shell中手动刷新了它,但仍然存在相同的错误


最后我关闭了这个项目,重新打开,它被修复了

您是否已将项目与SBT同步?@adamwy我以为它已自动同步,但在您提到它之后,我右键单击
build.SBT
,然后单击“同步并重建项目”,仍然会出现相同的错误。我不确定它是否与SBT同步,还是仅与文件系统同步。我认为与SBT同步的正确方法是打开右侧的
SBT项目
面板,然后单击刷新按钮。@adamwy是的,我也这么做了,但不幸的是,我仍然遇到同样的问题我创建了与您相同的项目,它似乎对我有效。它看起来像是
test。scala
应该放在
src/main/scala
目录中。也许这就是问题的根源?