【问题标题】:at scala project, compiler error - Cannot resolve symbol List?在 scala 项目中,编译器错误 - 无法解析符号列表?
【发布时间】:2013-09-28 09:46:06
【问题描述】:

我是 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)

我在 Idea 上安装了 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)
  }    
}

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

  • 如何解决这个问题?

更新:

  • 我重新安装了新版本的IntelliJ IDEA 13 Community Edition 而不是 #12。在/usr/local/Idea 中去皮。
  • 已删除 sbt - sudo apt-get purge sbt。并重新安装雅阁this script
  • 我去了/MyProjectDirectory/project/ 并创建了“plugin.sbt” 内容:

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

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

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

应该够了,但是又显示了:

Cannot resolve symbol List

并建议导入import scala.collection.immutable.List。但这没有帮助。它一直用红线下划线。

【问题讨论】:

  • 快速检查一下:您是否安装了适用于 Idea 的 Scala 和 SBT 插件?
  • @Shadowlands 是的,当然,两者都安装了。
  • 一些问题: 1) 你用的是windows吗? 2) 您是否在新建项目向导中使用Download Scala... 安装了scala?
  • 您是在 Idea 中收到错误,还是从控制台上的 sbt 收到错误,或者两者兼而有之?
  • @maba 1) 我使用的是 Ubuntu 12.04。 2) 我在 Idea 插件管理器中安装了插件 (sbt, scala)。

标签: java scala intellij-idea


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    1. 确保将 Scala Facet 添加到您的应用程序中。转到 Facets 选项卡并检查是否在此处列出了 Scala facet。如果没有,则需要添加并配置它。然后确保 Scala Facet 列在所有需要 Scala 的模块下。

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

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

    【讨论】:

    • 在项目中它没有 Scala Facet。如何配置所有这些选项?
    • 转到项目结构 -> 构面并单击绿色加号图标 - 然后选择 Scala。您还可以通过右键单击“模块”选项卡中的模块名称来向模块添加构面。
    • 我不得不清除 project/ 目录,然后重新导入 IDEA,这似乎终于解决了问题。
    • Scala Facet 在 IDEA 14 blog.jetbrains.com/scala/2014/10/30/… 中被 Scala SDK 取代
    【解决方案3】:

    我想这是 IDEA 的问题。如果您在Scala IDE 中打开同一个项目,您可以快速验证这一点。

    您也可以在命令行中尝试:

    [m:~/Scala/Hello]$ scala
    Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_51).
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala> var l = List()
    l: List[Nothing] = List()
    

    【讨论】:

    • 这个 Scala IDE 是否修改了 eclipse 或者它与 java 保持正常工作(创建 java 项目等)?
    • 您可以单独安装它以专门用于 Scala 和 Java,或者您可以将插件添加到现有的 Eclipse。它不会以任何方式影响您使用 Java 项目。
    • 只需要解压即可?
    • 是的,没有这样的安装过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多