2013-07-30 13 views
13

Ich habe wiederholt die java.lang.OutOfMemoryError: Java heap space Fehler beim Kompilieren meines Android-Projekts auf IntelliJ Idee.IntelliJ Idee geben java.lang.OutOfMemoryError: Java-Heap-Speicherfehler, auch nach dem Vergrößern der Heap-Größe

Ich habe meinen Java-Heap-Speicherplatz erhöht, indem ich dem Link here folgte, aber das hat das Problem nicht gelöst. Das Lustige ist, dass meine App manchmal kompiliert wird, und zu anderen Zeiten wird die App aufgrund des Java-Heap-Space-Fehlers nicht kompiliert. Auch wenn ich keine Änderungen an der App vorgenommen habe, wird sie manchmal kompiliert und scheitert manchmal.

Irgendeine Idee, wie ich dieses Problem lösen kann?

ich ein Android-Projekt bin kompilieren, könnte es aufgrund der großen Menge oder Ressourcen (ziehbar hdpi, xhdpi, xxhdpi, groß hdpi, groß xhdpi, groß xxhdpi), die ich habe? Aber dann, wie ich schon sagte, es kompiliert manchmal und manchmal nicht. Ich bin dabei, ungefähr 10 Versuche zu machen, jedes Mal zu kompilieren und zum Glück wird es einmal erfolgreich sein. Hier

ist der Fehler:

Internal error: (java.lang.OutOfMemoryError) Java heap space java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2271) at com.intellij.util.io.UnsyncByteArrayOutputStream.write(UnsyncByteArrayOutputStream.java:52) at com.intellij.util.io.DataOutputStream.write(DataOutputStream.java:34) at java.io.FilterOutputStream.write(FilterOutputStream.java:97) at 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) at org.jetbrains.jps.incremental.storage.AbstractStateStorage$1.append(AbstractStateStorage.java:103) at 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) at org.jetbrains.jps.incremental.storage.OneToManyPathsMapping.appendData(OneToManyPathsMapping.java:50) at org.jetbrains.jps.incremental.storage.SourceToOutputMappingImpl.appendOutput(SourceToOutputMappingImpl.java:50) at org.jetbrains.jps.builders.impl.BuildOutputConsumerImpl.registerOutputFile(BuildOutputConsumerImpl.java:65) at org.jetbrains.jps.android.AndroidResourceCachingBuilder.runPngCaching(AndroidResourceCachingBuilder.java:126) at org.jetbrains.jps.android.AndroidResourceCachingBuilder.build(AndroidResourceCachingBuilder.java:48) at org.jetbrains.jps.android.AndroidResourceCachingBuilder.build(AndroidResourceCachingBuilder.java:32) at org.jetbrains.jps.incremental.BuildOperations.buildTarget(BuildOperations.java:100) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:744) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:770) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:702) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:523) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:314) at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:179) at 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)

Vielen Dank im Voraus!

Antwort

16

Gehen Sie zu Einstellungen (Einstellungen auf Mac) -> Compiler -> Java Compiler -> Maximale Heap-Größe (MB) und die Größe, starten Sie IntelliJ

+2

Wenn Sie Android Studio diese Option im Abschnitt "Android Compiler" verwenden. – TARAKAN

+0

Einstellung wurde in 'Compiler' verschoben ->' Build proze Haufengröße (MB) 'in IntelliJ 17.2.3 - https://Stackoverflow.com/a/8581537/7193940 – MagicLegend

10

ich dieses Problem heute nur hatte, und nach Verdoppelung/Vervierfachen der Heap-Größen unter Datei/Einstellungen/Compiler/Java Compiler und .../Compiler/Android Compiler und es würde immer noch nicht kompilieren.

der Wert, der schließlich mein Problem behoben wurde, den Wert genannt Compiler-Prozess Heap-Größe zu erhöhen (ich es verdoppelt, aber das ist wahrscheinlich nicht erforderlich), die unter Datei/Einstellungen/Compiler gefunden werden kann

dies löste die Problem für mich Intellij Version 12.1.5 (die neueste jetzt) ​​

auch merke ich, dass dieser Thread ist ein bisschen alt ...

+0

der Grund, warum ich Java-Compiler und Android-Compiler nennen dass es notwendig sein könnte, alle von ihnen zu erhöhen, habe ich diese Tatsache nicht getestet –

2

Intellij liefert Ihnen Mitteln Anwendung VM-Optionen zu bearbeiten. Konfigurationen bearbeiten, denke ich, ist was du willst. Diese Einstellung befindet sich in der oberen rechten Ecke, oder alternativ können Sie die Umschaltsteuerung-A "Konfigurationen bearbeiten" verwenden. Sie sollten einen Dialog sehen und eines der Felder ist VM-Optionen. Hier können Sie Ihre anwendungsspezifischen Einstellungen vornehmen, z. B. -Xmx2048m.