2013-07-30 18 views
13

Ho ripetutamente ricevuto l'errore java.lang.OutOfMemoryError: Java heap space durante la compilazione del mio progetto Android su IntelliJ Idea.IntelliJ Idea che fornisce java.lang.OutOfMemoryError: errore dello spazio heap Java anche dopo l'aumento della dimensione heap

Ho aumentato lo spazio dell'heap java seguendo il collegamento here che tuttavia non ha risolto il problema. La cosa divertente è che a volte la mia app verrà compilata e altre volte l'app non verrà compilata a causa dell'errore di spazio dell'heap java. Anche quando non ho apportato alcuna modifica all'app, questa verrà compilata a volte e a volte non riuscirà.

Qualche idea su come posso risolvere questo problema?

Sto compilando un progetto Android, potrebbe essere dovuto alla grande quantità o alle risorse (drawable hdpi, xhdpi, xxhdpi, large-hdpi, large-xhdpi, large-xxhdpi) che ho? Ma poi di nuovo, come ho detto, si compila a volte ea volte no. Sono giù per fare circa 10 tentativi di compilare ogni volta e fortunatamente avrà successo una volta.

Ecco l'errore:

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)

Grazie in anticipo!

risposta

16

Vai a Impostazioni (Preferenze su Mac) -> Compiler -> Java Compiler -> Dimensione heap massima (MB), e aumentare la dimensione, quindi riavviare IntelliJ

+2

Se si utilizza Android Studio questa opzione nella sezione "Compilatore Android". – TARAKAN

+0

L'impostazione è stata spostata in 'Compiler' ->' Build proces heap size (MB) 'in IntelliJ 17.2.3 - https://stackoverflow.com/a/8581537/7193940 – MagicLegend

10

Ho appena avuto questo problema oggi, e dopo il raddoppio/quadruplicare le dimensioni dell'heap in File/Impostazioni/Compilatore/Compilatore Java e .../Compiler/Compilatore Android e ancora non verrebbe compilato.

il valore che finalmente risolto il mio problema è in aumento il valore chiamato compilatore di processo Dimensione heap (ho raddoppiato, ma che probabilmente non è necessario), che si trova in File/Impostazioni/Compiler

questo ha risolto il problema per me usando Intellij versione 12.1.5 (l'ultima in questo momento)

anche mi rendo conto che questa discussione è un po 'vecchio ...

+0

il motivo per cui menziono il compilatore java e il compilatore Android è che potrebbe essere necessario aumentarli tutti, non ho provato questo fatto –

2

Intellij vi fornisce i mezzi per Modifica applicazione VM Options. Modifica Configurazioni, penso, è ciò che stai cercando. Questa impostazione si trova nell'angolo in alto a destra, o in alternativa è possibile utilizzare il controllo del turno-A "Modifica configurazioni" si dovrebbe vedere una finestra di dialogo e uno dei campi è VM Options. Qui puoi impostare le impostazioni specifiche dell'applicazione, ad esempio -Xmx2048m.

Problemi correlati