web-dev-qa-db-ja.com

StackOverflowError with Scala on IntelliJ

Gradleを使用してIntelliJでScalaプロジェクトをビルドしようとしています。作成はできますが、スタックオーバーフローエラーでコンパイルが失敗し続けます。

ヒープ/スタックサイズの増加を示唆する同様の問題を持つ他の投稿を調べました( this および this )。これまで、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)
12
zzz

例外はコンパイラからです。アイデア構成でコンパイラビルドプロセスのヒープサイズを変更する必要があります。に移動

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

このプロパティをより高い値に増やします。この問題を解決する必要があります。

enter image description here

13
Aaditya Raj

私はこれを次の方法で解決しました:

設定->ビルド、実行、デプロイ->コンパイラ-> Scalaコンパイラ-> Scalaコンパイルサーバー

そして、より大きなスタックサイズを使用するようにJVMオプションを更新しました。例:-Xss8m

変更を有効にするために再起動します。

4
tekumara

私の場合、Eclipse.iniに-Xss100mを追加すると機能しました。おそらく、intellijに同様のプロパティを追加すると役立つ場合があります。

2
ankitbaldua