18

java.lang.OutOfMemoryError: Java heap spaceIntelliJ Idea で Android プロジェクトをコンパイルすると、エラーが繰り返し発生します。

ここのリンクをたどってJavaヒープスペースを増やしましたが、問題は解決しませんでした。面白いことに、アプリがコンパイルされることもあれば、Java ヒープ スペース エラーが原因でアプリがコンパイルされないこともあります。アプリに変更を加えていない場合でも、コンパイルに失敗したり、失敗したりすることがあります。

この問題を解決する方法について何か考えはありますか?

Android プロジェクトをコンパイルしていますが、大量またはリソース (描画可能な hdpi、xhdpi、xxhdpi、ラージ hdpi、ラージ xhdpi、ラージ xxhdpi) が原因でしょうか? しかし、繰り返しになりますが、私が言ったように、コンパイルできる場合とそうでない場合があります。私は毎回コンパイルを約 10 回試みていますが、幸運にも一度は成功するでしょう。

エラーは次のとおりです。

内部エラー: (java.lang.OutOfMemoryError) Java ヒープ スペース java.lang.OutOfMemoryError: Java ヒープ スペース at java.util.Arrays.copyOf(Arrays.java:2271) at com.intellij.util.io.UnsyncByteArrayOutputStream.write( UnsyncByteArrayOutputStream.java:52) で com.intellij.util.io.DataOutputStream.write(DataOutputStream.java:34) で java.io.FilterOutputStream.write(FilterOutputStream.java:97) で com.intellij.util.io.IOUtil .writeString(IOUtil.java:63) at org.jetbrains.jps.incremental.storage.OneToManyPathsMapping$PathCollectionExternalizer.save(OneToManyPathsMapping.java:87) at org.jetbrains.jps.incremental.storage.OneToManyPathsMapping$PathCollectionExternalizer.save(OneToManyPathsMapping) .java:84) org.jetbrains.jps.incremental.storage.AbstractStateStorage$1.append(AbstractStateStorage.java:103) で com.intellij.util.io.PersistentHashMap.doAppendData(PersistentHashMap.java:371) at com.intellij.util.io.PersistentHashMap.appendData(PersistentHashMap.java:358) at org.jetbrains.jps.incremental.storage.AbstractStateStorage.appendData( AbstractStateStorage.java:101) の org.jetbrains.jps.incremental.storage.OneToManyPathsMapping.appendData(OneToManyPathsMapping.java:50) の org.jetbrains.jps.incremental.storage.SourceToOutputMappingImpl.appendOutput(SourceToOutputMappingImpl.java:50) の org .jetbrains.jps.builders.impl.BuildOutputConsumerImpl.registerOutputFile(BuildOutputConsumerImpl.java:65) org.jetbrains.jps.android.AndroidResourceCachingBuilder.runPngCaching(AndroidResourceCachingBuilder.java:126) org.jetbrains.jps.android.AndroidResourceCachingBuilder.build (AndroidResourceCachingBuilder.java:48) org.jetbrains.jps.android.AndroidResourceCachingBuilder.build(AndroidResourceCachingBuilder.java:32) で org.jetbrains.jps.incremental.BuildOperations.buildTarget(BuildOperations.java:100) で org.jetbrains.jps.incremental.IncProjectBuilder .runBuildersForChunk(IncProjectBuilder.java:744) org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:770) org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:702) org. org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:523) org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:314) org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder. java:179) org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:129) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:220) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:112) at org.jetbrains .jps.cmdline.BuildMain$MyMessageHandler$1.run(BuildMain.java:132) at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:41) at java.util.concurrent.Executors$RunnableAdapter .call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166)132) org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:41) で java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) で java.util.concurrent. FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166)132) org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:41) で java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) で java.util.concurrent. FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166)

前もって感謝します!

4

4 に答える 4

10

今日この問題が発生しました.File/Settings/Compiler/Java Compilerおよび.../Compiler/Android Compilerの下でヒープサイズを2倍/4倍にしても、まだコンパイルされません。

最終的に私の問題を解決した値は、File/Settings/Compiler の下にある Compiler Process Heap Size と呼ばれる値を増やすことでした (私はそれを 2 倍にしましたが、おそらくそれは必要ありません)。

これにより、Intellijバージョン12.1.5(現在最新)を使用して問題が解決しました

また、このスレッドが少し古いことに気づきました...

于 2013-10-02T18:53:44.423 に答える
5

Intellij は、アプリケーション VM オプションを編集する手段を提供します。構成の編集は、あなたが求めているものだと思います。この設定は右上隅にあります。または、代わりに shift-control-A の「構成の編集」を使用することもできます。ダイアログが表示され、フィールドの 1 つが VM オプションです。ここで、アプリケーション固有の設定、つまり -Xmx2048m を設定できます。

于 2015-05-04T19:31:19.283 に答える