【问题标题】:StackOverflowError with Scala on IntelliJ在 IntelliJ 上使用 Scala 的 StackOverflowError
【发布时间】:2017-08-28 21:14:08
【问题描述】:

我正在尝试使用 Gradle 在 IntelliJ 上构建一个 Scala 项目。我能够制作,但编译不断失败,并出现堆栈溢出错误。

我查看了其他有类似问题的帖子,这些帖子建议增加堆/堆栈大小(thisthis)。到目前为止,我已经尝试在 JAVA_OPTS 和 idea64.exe.vmoptions 中设置这些。

-Xss512m -Xms512m -Xmx2048m -XX:ReservedCodeCacheSize=64m -ea

我还尝试了包含 -XX:MaxPermSize=2048m 也不起作用(相信 Java 8 无论如何都不支持它)。

为具有相同配置的另一个人构建相同的代码。任何人都可以阐明我所缺少的吗?

详情:

IntelliJ Ultimate 2016.1
Scala 2.10.3
Java 1.8.0_92

堆栈跟踪:

java.lang.StackOverflowError
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
    at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
    at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5472)
    at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5480)
    at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:642)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
    at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)

【问题讨论】:

  • 这个异常是来自编译器进程,而不是IDEA本身的进程。尝试在 Settings -> Languages & Frameworks -> Scala Compile Server -> JVM Parameters 中增加 -Xss。还要检查是否启用了 Scala 编译服务器。

标签: java scala intellij-idea


【解决方案1】:

这对我有用:

  • 来自 Windows Powershell,$env:SBT_OPTS="-Xss1024m" 然后运行 ​​sbt compile

  • 同样在 IntelliJ v2020.2 中,以下也有效: 设置 -> 构建、执行、部署 -> 构建工具 -> SBT -> JVM:虚拟机参数:-Xss1024m

【讨论】:

    【解决方案2】:

    我有同样的问题,并在 intellij 中做了很多更改,但没有一个起作用。

    我从我的代码及其工作中删除了unused case classes

    【讨论】:

      【解决方案3】:

      IntelliJ 使用的编译器例外,因此您需要更改编译器构建过程' 堆大小。前往

      File -> Settings -> Build, Execution, Deployment -> Compiler -> Build process 
      heap size (Mbytes)
      

      将此属性增加到更高的值。

      【讨论】:

        【解决方案4】:

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

        首选项 -> 构建、执行、部署 -> 编译器 -> Scala 编译器 -> Scala 编译服务器

        并更新了 JVM 选项以使用更大的堆栈大小,例如:-Xss8m

        重新启动以使更改生效。

        【讨论】:

          【解决方案5】:

          在 eclipse.ini 中添加 -Xss100m 对我来说有效,可能在 intellijJ 中添加类似的属性可能会有所帮助。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-03
          • 1970-01-01
          • 1970-01-01
          • 2013-12-21
          • 1970-01-01
          • 2018-06-02
          • 1970-01-01
          相关资源
          最近更新 更多