在scala项目中,编译器错误 - 无法解析符号列表?

naz*_*art 9 java scala intellij-idea

我完全是Scala的新人.
我在Ubuntu 12.04上安装了java,sbt和scala:

nazar_art@nazar-desctop:~$ sbt sbt-version
[warn] Alternative project directory .sbt (/home/nazar_art/.sbt) has been deprecated since sbt 0.12.0.
[warn]   Please use the standard location: /home/nazar_art/project
[info] Loading project definition from /home/nazar_art/.sbt
[info] Set current project to default-5b9232 (in build file:/home/nazar_art/)
[info] 0.12.4
nazar_art@nazar-desctop:~$ scala -version
Scala code runner version 2.10.2 -- Copyright 2002-2013, LAMP/EPFL
nazar_art@nazar-desctop:~$ java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我在IDE上安装了scala和sbt插件.

当我尝试第一个示例项目时,我看到下一个错误:

下一行后无法解析符号列表:

package example    
import common._

object Lists {      
  def sum(xs: List[Int]): Int = {   // <== here underline for List
    if (xs.isEmpty) 0
    else xs.head + sumList(xs.tail)
  }    
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚到底出了什么问题?IDEA建议我导入java.util.List- 但是这个类没有任何isEmpthy()方法.
有什么建议吗?

  • 如何解决这个麻烦?

更新:

  • 我重新安装了新版本的IntelliJ IDEA 13社区版 而不是#12 /usr/local/Idea.
  • 删除了sbt - sudo apt-get purge sbt.并重新安装这个脚本.
  • 我去了/MyProjectDirectory/project/并创建了'plugin.sbt'的内容:

    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")

  • 在此之后,我从我的项目目录中输入sbt gen-idea.它为Idea重建项目.

  • 并用想法问候窗口(Open Paroject)打开了这个项目.当然,安装sbtscala插件.

它应该足够但它再次显示:

Cannot resolve symbol List
Run Code Online (Sandbox Code Playgroud)

并建议进口import scala.collection.immutable.List.但这没有用.它用红线加下划线. 在此输入图像描述

Pio*_*ski 6

如果您的IDEA插件没有看到scala类,请转到文件 - >项目结构并检查以下内容:

  1. 确保Scala Facet已添加到您的应用程序中.转到"构面"选项卡,检查是否列出了Scala构面.如果没有,您需要添加和配置它.然后确保Scala Facet列在需要Scala的所有模块下.

  2. 确保Scala Facet使用正确版本的scala库(如果找不到,则Idea会用红色标记).

  3. 确保scala-library.jar位于使用Scala的模块的依赖项列表中.检查路径是否正常.


Jac*_*ack 6

对于遇到相同问题的任何人,请先在Idea中尝试以下操作:

文件 - >使高速缓存无效 - >无效并重新启动