【问题标题】:Scala worksheet not working in IntellijScala 工作表在 Intellij 中不起作用
【发布时间】:2014-06-07 05:37:26
【问题描述】:

我有 Intellij-IDEA 13.1.2。 [已编辑,之前为 13.0.2] 我使用scala插件。 我正在尝试使用工作表来评估代码。

但我得到的只是两个错误:

bad macro impl binding: versionFormat is supposed to be there
Unable to read an event from: rO0ABXNyADVvcmcuamV0YnJhaW5zLmpwcy5pbmNyZW1lbnRhbC...

我可以正常运行 scala 控制台并在其中执行我的代码, 但工作表不起作用。 如果我的代码不正确,它会输出一个错误,表明解释器无法解析我的代码。只有当我的代码正确时,我才会收到“bad macro impl binding”错误。

我尝试创建一个新项目,但没有成功。 我按照教程在 intellij 中配置 scala,但它也没有帮助。

是否有我可能错过的重要配置步骤?这个错误是什么意思?

编辑:我在工作表中尝试了最简单的方法,例如 1 或 var x = 1 或 println("Hello World!")

EDIT2:我不确定我更改了什么,但现在我遇到了另一个错误: 错误:加载 MacroPrinter 时出错,缺少 MacroPrinter 所需的类文件。 包反射的引用值宏引用不存在的符号。

更新:现在它在 Intellij 13.1.5、Scala 插件 0.41.2 以及 scala-2.10 和 2.11 下都能正常工作

【问题讨论】:

  • 首先,您可以使用最新版本。 IntelliJ 为 13.1.2,Scala 插件为 0.35.654;工作表比较新,所以除了插件越新越好
  • 谢谢,我也尝试过,但我仍然得到同样的错误......
  • 您要评估哪个代码?您应该在问题中包含这一点,否则很难说出您的问题所在。
  • 我遇到了同样的问题:```错误:加载 MacroPrinter 时出错,缺少 MacroPrinter 所需的类文件。包reflect的引用值宏引用了不存在的符号。````你找到解决方案了吗?
  • 我设法让它工作。我从 intellij 安装了 SBT 模块。这个模块下载了很多东西,最终解决了这个问题。

标签: scala intellij-idea


【解决方案1】:

我遇到了“无法从中读取事件”问题,从 Scala 2.11.0 切换到 Scala 2.10.4 为我解决了这个问题。

【讨论】:

  • 谢谢!它也为我修好了。
  • 这也为我做了。我想知道这个问题是否已在 2.11.1 中修复。
  • 我在使用 Scala 2.11.1(最新版本)时遇到同样的错误。
【解决方案2】:

我在a similar question 中分享了一个解决方法,我认为它也可以解决这个问题:

我在使用最新的 Idea 和 Scala 插件时遇到了同样的问题。
工作表似乎在执行任何计算为 Unit 的行时出现问题。分配是单位,这就是你的tableTest(0) = "zero" 失败的原因。

我已经通过以下解决方法暂时解决了这个问题:

此行将失败并出现错误Error:Unable to read an event from:...

println("Will fail")

您可以通过定义此辅助方法并将其用于任何 Unit 表达式来修复它:

def unit(f: => Unit): String = {f; ""}
unit(println("Will work"))

您只需忽略它在输出面板中使用res0: String = 生成的行 您也可以将此方法放在某个对象中并导入您需要的任何 WS。

【讨论】:

  • 嗯,这对我有帮助。至少它将问题与返回 Unit 的语句隔离开来。如果有了这个创可贴,我们中的一些人可以继续完成他们的任务。
【解决方案3】:

我正在使用 IntelliJIDEA 13.1.2 和 Scala 插件 0.36.431。我尝试创建一个 Scala Non-SBT 项目并创建了一个工作表文件,然后我遇到了“bad macro impl binding”问题。但是,如果我使用工作表文件创建了一个 Scala SBT 项目,它运行良好。

【讨论】:

  • 是的,它也适用于我,我认为这是因为 SBT 默认使用 scala 2.10
【解决方案4】:

在使用 JRE 1.7.0_60 和 Scala 2.11.0 更新到 IntelliJ 13.1.5 build 135.1289 后,我遇到了同样的问题。

我通过禁用设置 -> IDE 设置 -> Scala ->“运行编译服务器”中的复选框来解决问题。

【讨论】:

  • 你是个天才!没有其他东西对我有用,但这确实有用!谢谢!!!
猜你喜欢
  • 2023-02-20
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多